2013-01-15 21 views

回答

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) 

希望這有助於...

0

這樣的錯誤

Dim rgText As Registry.ClassesRoot.OpenSubKey(".txt") 
導入和聲明之後再次顯示了

和錯誤看起來像這樣:

類型'Registry.ClassesRoot.OpenSubKey'未定義。

相關問題