2011-11-17 67 views
0

我不能得到下面的代碼來檢查我的regestrykey是否存在可以幫助一些人。這個想法是檢查如果這樣做什麼,如果不是創建它,與它的價值以及它的存在......檢查regkey vb.net

全鍵HKEY_LOCAL_MACHINE \ SOFTWARE \ VTS \高級偏移2次\管理\訪問

>   If Dir$("HKEY_LOCAL_MACHINE\SOFTWARE\VTS\Advanced Offset 2\Admin", vbDirectory) <> "" Then 

     Else 
      MsgBox(".NET Framework 2.0") 

     End If 

更新的代碼:

Dim l_subKeyPath As String = "SOFTWARE\VTS\Advanced Offset 2\Admin\Access" 
Dim l_regKey As RegistryKey = My.Computer.Registry.LocalMachine.OpenSubKey(l_subKeyPath, False) 
If (l_regKey Is Nothing) Then 
    'if nothing then key doesn't exists 
    'Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\VTS\Advanced Offset 2\Admin", "ACCESS", "PASSWbORD") 
    MsgBox("yess") 
Else 
    'key exists 
    MsgBox("no") 
End If 

回答

1

試試這個:

Dim l_subKeyPath as string = "SOFTWARE\VTS\Advanced Offset 2\Admin\Access" 
    Dim l_regKey As RegistryKey = My.Computer.Registry.LocalMachine.OpenSubKey(l_subKeyPath, False) 
    If (l_regKey Is Nothing) Then 
     'if nothing then key doesn't exists 
    else 
     'key exists 
    End If 

引述MSDN:

RegistryKey.OpenSubKey Method

如果請求的鍵不存在,這個方法返回Nothing,而不是拋出異常。

+0

嗯我已經插入鑰匙樣品,並採取出來,但在消息框中不斷告訴我它的存在? (看ipdated的代碼看到整件事) –

+0

@BartvanTuÿl:如果它發現它,那麼它應該在那裏。 試過手動檢查密鑰是否存在? 您使用的是x86還是x64機器?在x64的情況下,它將在WOW64下。 – MichaelS

0

你說「檢查它是否存在,如果沒有創建它,連同它的值...」。 如果您使用某個鍵,則還需要創建一個NAME併爲該名稱添加一個值,但不能爲該鍵添加值。

採取看看在MSDN OpenSubKey