6

在 VB.NET 中,我可以像这样在 Windows 注册表中创建一个键:

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

但是如何检查注册表中是否存在具有特定名称的键?

4

2 回答 2

7

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

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

但是,我建议您不要走这条路。OpenSubKey返回的方法Nothing意味着密钥在过去的某个时间点不存在。当该方法返回另一个程序中的另一个操作时,可能已经创建了密钥。

我不会检查密钥是否存在并在事后创建它,而是直接转到CreateSubKey.

于 2013-04-01T14:56:18.207 回答
0

我使用此代码。它简单、容易,并且适用于HKEY_CURRENT_USER\Software\YourAppSettings.

代码:

string[]  kyes=Registry.CurrentUser.OpenSubKey(@"Software\YourAppSettings").GetValueNames();
if (!kyes.Contains("keytoknowIfExist"))
      {

      }
于 2020-11-26T18:59:09.690 回答