簡體   English   中英

將文件擴展名與程序相關聯

[英]Associating file extensions with a program

我知道怎么做了,之前我去過http://www.codeproject.com/KB/vb/VBFileAssociation.aspx 我的問題是關於做了什么,是否有可能扭轉它? 如果你不知道你的程序在哪里,你現在只是測試它會怎么樣? 有沒有辦法讓它“找到”你的程序,或者一種簡單的方法來編輯它的打開位置? 就此而言,是否可以判斷文件是否已經關聯,嘗試重新關聯是一個問題嗎? 最后,如何設置它使用的.ico文件?

感謝您的幫助,我對注冊表幾乎一無所知,這讓我很困惑...

為簡潔起見,我使用的是假根密鑰。 實際上,將Hive_Key替換為HKEY_LOCAL_MACHINE以獲取系統默認設置,或將HKEY_CURRENT_USER替換為每個用戶設置。 允許存在這些鍵中的任何一個,或兩者都存在。 如果它們都存在,則HKCU密鑰優先。

要將擴展名與文件類型相關聯,您需要通過設置默認鍵值來設置具有所選文件類型的擴展鍵( Hive_Key\\Software\\Classes\\.ext )的默認值。

啟動的實際程序以及其他文件類型詳細信息可在文件類型中找到。 文件類型由所謂的ProgID (“程序標識符”的縮寫,它是類標識符的更易讀的版本)標注。 ProgID鍵位於Hive_Key\\Software\\Classes ,此插圖的示例值可能是ext_auto_key

ProgID可能有一個默認值,它將是資源管理器中文件類型的友好描述(例如,“Microsoft Word文檔”)。 您可以確保選擇易於用戶理解的描述。

ProgID可以有一個子鍵DefaultIcon ,它是存儲文件類型圖標的位置。 該圖標路徑是該鍵的默認值。

ProgID鍵可以是一個子鍵, shell ,它將包含文件上的上下文菜單項,以及該上下文菜單項將調用的程序。 與ProgID的默認值類似,動詞鍵的默認值是將顯示在上下文菜單中的文本。 shell鍵的默認值具有默認的動詞鍵名稱,即用戶雙擊文件時調用的動詞。

這些上下文菜單項是Verbs 對於我們的示例,使用記事本打開文件的動詞將如下所示: Hive_Key\\Software\\Classes\\ext_auto_file\\shell\\open\\command ,默認值為notepad.exe %1

這是您放置程序路徑的地方。 如果您的程序在系統PATH中,如notepad.exe,則無需指定完整路徑。 在更可能的情況下,您需要指定exe的路徑。 出於測試目的,您可以將其設置為構建目錄。

您詢問了如何檢查這些內容,這可以通過首先檢查擴展鍵的默認值來獲取ProgID,然后檢查ProgID鍵的shell子鍵以獲取默認動詞,然后檢查\\shell\\verb\\command獲得啟動程序的路徑。

打開regedit.exe並瀏覽其他文件類型的注冊表項以更好地了解它是如何工作的,這可能很有啟發性。

此外,如果特定擴展名不受控制面板中默認設置(默認程序)的程序控制,則上述內容均有效。 您可以通過檢查是否存在密鑰HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\ Explorer\\FileExts\\.EXT\\UserChoice來檢查此狀態。 如果是,則需要在自定義生效之前撤消“默認程序”控件。 這可以通過刪除UserChoice子項來完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM