2011-11-17 36 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