2013-04-01 37 views
5

Windows註冊表在VB.NET存在,我可以創建這樣在Windows註冊表中的一個關鍵:檢查的關鍵在與VB.NET

My.Computer.Registry.CurrentUser.CreateSubKey("TestKey") 

我可以檢查一個中存在像這樣的關鍵:

If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\MyKey", _ 
     "TestValue", Nothing) Is Nothing Then 
    MsgBox("Value does not exist.") 
Else 
    MsgBox("Value exist.") 
End If 

但我怎麼能檢查是否有具有特定名稱存在於註冊表中?

回答

6

一種方法是使用Registry.OpenSubKey方法

If Microsoft.Win32.Registry.LocalMachine.OpenSubKey("TestKey") Is Nothing Then 
    ' Key doesn't exist 
Else 
    ' Key existed 
End If 

不過我勸你不要走這條路。 OpenSubKey方法返回Nothing意味着密鑰在過去的某個時間點不存在。當該方法返回另一個程序中的另一個操作時,可能會導致該鍵被創建。

而不是檢查關鍵存在,並在事實後創建它,我會直接去CreateSubKey

+0

這可能並不總是工作。默認情況下,64位操作系統上的32位應用程序將查看HKLM \ Software \ Wow6432Node節點。要讀取密鑰的64位版本,您需要指定RegistryView –