我有多个注册表值名称,每个名称下都有一个值HKEY_CURRENT_USER\SOFTWARE\HomeApp
。现在,我想从注册表值名称列表中搜索特定值,每个值包含一个值。我有:
VALUENAME VALUE
valuename0 98OTIUO
valuename1 H989804
valuename2 KG65326
valuename3 BCG37A2
...
假设我想查找是否有值“ KG65326”,该如何在vb.net中进行?
您将不得不遍历所有值条目,直到找到具有特定值的条目为止。您可以通过For
在从返回的数组上使用-loop来执行此操作RegistryKey.GetValueNames()
,然后通过来获取每个条目的值RegistryKey.GetValue()
。
您可以简单地对其进行扩展:
Imports Microsoft.Win32
Imports System.Runtime.CompilerServices
Public Module Extensions
<Extension()> _
Public Function ContainsValue(ByVal RegKey As RegistryKey, ByVal Value As Object) As Boolean
For Each ValueName As String In RegKey.GetValueNames()
If RegKey.GetValue(ValueName) = Value Then
Return True
End If
Next
Return False
End Function
End Module
用法示例:
Using MyKey As RegistryKey = Registry.CurrentUser.OpenSubKey("SOFTWARE").OpenSubKey("HomeApp")
If MyKey.ContainsValue("KG65326") = True Then
'Do your stuff here.
End If
End Using
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句