我想我的程序問用戶「你想設置.mp3文件類型總是默認打開這個程序嗎?」 (僅限第一次)任何例子來做到這一點?如何設置「總是通過這個程序打開」
1
A
回答
3
首先,您需要熟悉Windows註冊表。
程序和擴展之間的關聯在HKEY_CLASSES_ROOT鍵內處理。 每個擴展名都顯示爲子密鑰。
作爲每個鍵的默認值,您將找到關聯的鍵,該鍵處理該特定文件類型的大部分操作(當前支持的操作)。
例如,如果您已安裝VLC並將其配置爲默認的MP3播放器,您可能會發現.mp3的默認值設置爲「WMP11.AssocFile.MP3」或可能設置爲「VLC.mp3」。 因此,現在您需要再次在HKEY_CLASSES_ROOT中找到該密鑰。
雖然這可能會有所不同,但您應該發現「VLC.mp3」(或任何與.mp3擴展名關聯的密鑰)都有一個名爲「shell」的子密鑰。 在「shell」下你會發現另一個名爲「Open」的子鍵。 最後,在「打開」下,您會看到另一個名爲「Command」的子鍵。
「Command」鍵是包含Windows(和其他程序)用來打開/啓動當前與「.mp3」(或任何其他)擴展名關聯的信息的鍵。
一旦您理解並且感覺到註冊表中處理關聯的方式,您應該使用.NET的Microsoft.Win32
的註冊表類來導航並查詢所需的鍵及其值。
這裏的代碼將如何看起來像一個非常基本的例證:
Dim mp3 = Registry.ClassesRoot.OpenSubKey(".mp3")
Dim associatedValue = mp3.GetValue("")
Dim associatedKey = Registry.ClassesRoot.OpenSubKey(associatedValue)
Dim defaultProgram = associatedKey.OpenSubKey("Shell\Open\Command").GetValue("")
MsgBox("MP3 Files Are Opened Using: " + vbCrLf + defaultProgram)
希望這有助於...
1
您需要設置文件關聯。請參閱關於setting File Associations in VB.NET的代碼項目的文章。
0
這樣的錯誤
Dim rgText As Registry.ClassesRoot.OpenSubKey(".txt")
導入和聲明之後再次顯示了
和錯誤看起來像這樣:
類型'Registry.ClassesRoot.OpenSubKey'未定義。
相關問題
- 1. 如何打開這個程序?
- 2. 打開設備設置,而不是應用程序設置
- 3. 處理正在打開的程序是通過打開?
- 4. 總是在rootViewController打開應用程序
- 5. 通過電話打開iPhone設置
- 6. 在設置應用程序中打開應用程序的通知設置
- 7. 如何安裝通過另一個應用程序打開?
- 8. 如何從另一個應用程序打開WifiDisplay設置?
- 9. 如何在應用程序打開時更改應用程序設置(設置)?
- 10. 是否可以通過編程方式打開設置應用程序? (未設置應用程序內的應用程序設置)
- 11. 如何從Java Runtime.exec(命令)打開程序總是在最前
- 12. 如何從另一個應用程序IOS打開Facebook應用程序設置?
- 13. 程序打開多個程序並更改選項和設置?
- 14. 通過EMail打開IOS應用程序
- 15. 通過URL打開vimeo應用程序
- 16. 通過URL打開YouKu應用程序
- 17. 這個JavaScript如何在Firefox中打開Windows設置?
- 18. 打開設置應用程序
- 19. 設置鏈接打開應用程序
- 20. 打開設置應用程序?
- 21. 這個過程中的哪個文件是打開的?
- 22. 如何通過Selenium(Python)打開Firefox代理設置的遠程DNS功能?
- 23. 這個應用程序無法打開
- 24. 在iOS設備上通過ssh打開應用程序
- 25. 如何在Android應用程序(通過C++)中打開設備節點(/ dev/hidraw0)?
- 26. 如何通過點擊鏈接在移動設備上打開應用程序?
- 27. 如何打開這個大查詢到存儲過程中
- 28. 如何通過設備設置訪問應用程序?
- 29. 通過應用程序打開配置文件
- 30. 如何直接打開YouTube應用程序通過intent