Вы можете использовать GetValue
объекта RegistryKey
и проверить результат, если Nothing
тогда значение не существует.
Вот полный пример, который должен заставить вас работать. Обратите внимание, что может нужны права администратора для создания ключей и значений в зависимости от прав доступа машины:
Dim myAppKey = Microsoft.Win32.RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.CurrentUser, Microsoft.Win32.RegistryView.Default)
If myAppKey Is Nothing Then Throw New Exception("Failed to open registry")
Dim subKeyName = "SOFTWARE\MYAPP"
'attempt to open the subkey with write acces because we need this if we are creating values
Dim subKey = myAppKey.OpenSubKey(subKeyName, True)
If subKey Is Nothing Then
'create the sub key because it doesn't exist
myAppKey.CreateSubKey(subKeyName)
're open the new key
subKey = myAppKey.OpenSubKey(subKeyName, True)
End If
'create values in a loop for testing
For i = 0 To 6
If subKey.GetValue("Value" & i) Is Nothing Then
'value does not exist so create it
subKey.SetValue("Value" & i, i)
End If
Next
Я не делать VB.NET, но предположил бы, что существует такая функция, как «keyexists». Вы можете сделать «Если не Keyexists (« YourKey »), то ...« Либо добавьте ключ, либо перейдите. –
Структура реестра Windows заключается в том, что в ключе у нас есть valueename со значением. И я хочу программным образом создать новое значение (не ключ) с другим именем valuename. – Chata
То же самое должно применяться, если valueexist ... и т. Д. Эта ссылка является delphi, но она может вам помочь. http://stackoverflow.com/questions/16938305/how-to-check-if-a-registry-key-exists –