Создание 7 значений реестра в разделе реестра без повторений

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

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

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

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
Другие вопросы по тегам