检查注册表项是否存在无效

时间:2017-08-06 07:32:45

标签: vb.net

我的程序中有这个功能,删除特定的reg文件(如果存在)。出于某种原因,当这段代码运行时,它会出现一条错误消息,指出我无法将字符串转换为双字符

这是我的代码:

Dim RegistryKey As Microsoft.Win32.RegistryKey
RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("registry key here", True)

If My.Computer.Registry.GetValue("registry key here", "Key to delete", Nothing) Is Nothing Then

Else
    RegistryKey.DeleteValue("Key to delete")
End If

以下是错误消息:

Error Message

1 个答案:

答案 0 :(得分:0)

如果要从注册表中删除密钥,则路径必须为:

Int: 0
Float: 0.6666666666666666

如果Dim RegistryKey As Microsoft.Win32.RegistryKey Dim keyName As String = "Software\Microsoft\Windows\CurrentVersion\Run" RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(keyName, True) 那么密钥不存在,否则您可以按照样本删除子密钥执行您想要的操作:

RegistryKey Is Nothing

如果你想检查If Not (RegistryKey Is Nothing) Then RegistryKey.DeleteValue("foo") Else MsgBox("not found") End If 的值并且它是否存在,请使用:

foo

提示解决问题:

如果你定义一个 If RegistryKey.GetValue("foo") Is Nothing Then MsgBox("value does not exist") Else MsgBox("value exist") End If ,那么使用它来评估一个子项是否存在或者在注册表中不存在,因为我使用RegistryKey但你使用RegistryKey.GetValue("foo")