2016-07-20 5 views
1

Я разрабатываю приложение Windows с помощью vb.net. Теперь я хочу добавить 7 значений в реестр HKEY_CURRENT_USER\SOFTWARE\MYAPP.Создание 7 значений реестра под ключ реестра без повторения

Каждое значение (из 7) следует добавлять только в том случае, если оно не существует в подразделе.

В конце концов я хочу увидеть только 7 под MYAPP SUBKEY. Как мне это сделать? Мне нужна ваша помощь.

+0

Я не делать VB.NET, но предположил бы, что существует такая функция, как «keyexists». Вы можете сделать «Если не Keyexists (« YourKey »), то ...« Либо добавьте ключ, либо перейдите. –

+0

Структура реестра Windows заключается в том, что в ключе у нас есть valueename со значением. И я хочу программным образом создать новое значение (не ключ) с другим именем valuename. – Chata

+0

То же самое должно применяться, если valueexist ... и т. Д. Эта ссылка является delphi, но она может вам помочь. http://stackoverflow.com/questions/16938305/how-to-check-if-a-registry-key-exists –

ответ

1

Вы можете использовать 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 
+0

Мэтт, это работает как шарм. Спасибо за вашу помощь. – Chata

+0

Добро пожаловать. Пожалуйста, поддержите также, если этот ответ помог вам –

Смежные вопросы