[英]How to launch a .bat file in VB without associating the file with the program that launched it?
[英]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.