! E M O T I O N A L ! Ответов: 1

"Ссылка на объект не установлена на экземпляр объекта". при чтении из реестра в VB.NET


Здравствуйте, я пытаюсь прочитать простое значение из ключа regedit в Visual Basic. Я хочу, чтобы программа считала ключ, а затем устанавливала значение реестра в качестве значения этого ключа. Вот этот код:

Shared Sub DWMDefault()
        Dim regKey As RegistryKey = _
My.Computer.Registry.LocalMachine.OpenSubKey("HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM", True)
        Dim ColorizationColor As Decimal = regKey.GetValue("ColorizationColor")
        regKey.SetValue("AccentColor", Convert.ToDecimal(ColorizationColor))
        regKey.SetValue("ColorizationColor", Convert.ToDecimal(ColorizationColor))
        regKey.Close()
    End Sub


Он просто выплевывает ошибку, как видно в заголовке строки, содержащей
Dim ColorizationColor As Decimal = regKey.GetValue("ColorizationColor")


Пожалуйста, помогите, я понятия не имею, что делать, чтобы исправить эту проблему, и, возможно, просто подумал, что совершаю какую-то глупую ошибку. Надеюсь, что это так, Спасибо!

Что я уже пробовал:

Я попытался вернуть цвет раскрашивания в виде байта и регистрационного ключа, но ни один из них не сработал.

1 Ответов

Рейтинг:
11

Christian Graus

Ваш код говорит, чтобы начать с localmachine и открыть подраздел. Но вы даете полный путь к текущему пользователю. Эта работа:

Dim regKey As RegistryKey =
My.Computer.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\DWM", False)
        Dim ColorizationColor As Decimal = regKey.GetValue("ColorizationColor")
        regKey.SetValue("AccentColor", Convert.ToDecimal(ColorizationColor))
        regKey.SetValue("ColorizationColor", Convert.ToDecimal(ColorizationColor))
        regKey.Close()


Ошибка означала то, что она сказала, ваше значение regKey было ничем