Не могу получить значение из реестра C#

279
13 июля 2022, 21:30

Создал функция которая проверяет есть ли параметр и если он есть то значение этого параметра записать в переменную. Но это не работает. В отладчике пишет что Microsot.Win32.Registry.GetValue возвращено 54.12.55. То есть значение которые оно вернуло верное, но когда дело доходит до записи в переменную она возвращает null

if (Registry.GetValue(@"HKEY_CURRENT_USER\onliner","address", null) != null) 
{
    string test = Registry.CurrentUser.OpenSubKey(@"HKEY_CURRENT_USER\onliner").GetValue("address").ToString();
}
else
{
    //nothing
}

Что я неправильно сделал?

Answer 1

Ошибка в пути. Если вы уже указали ключ Registry.CurrentUser, то в пути метода .OpenSubKey() не стоит его повторно прописывать.

Еще так как вы уже читаете значение при проверке, можно сразу его записать в переменную.

Вот рабочий вариант:

string test = Registry.GetValue(@"HKEY_CURRENT_USER\onliner", "address", null)?.ToString();
if (test != null) 
{
    Console.WriteLine(test);
}
READ ALSO
Как запустить exe и получить с него данные c#

Как запустить exe и получить с него данные c#

Собственно у меня уже есть код и он работаетНо на ASP

331
Floating Origin and Edy's Vehicle Physics

Floating Origin and Edy's Vehicle Physics

У нас возникла небольшая проблема с Floating Origin и Edy's Vehicle PhysicsДело в том, что когда срабатывает Floating, физика Edy сильно «психует» Машину подкидывает,...

358
Стартовая позиция полосы прокрутки в panel

Стартовая позиция полосы прокрутки в panel

Имеется панель на которой размещены элементыС помощью кода ниже удалось добавить вертикальную полосу прокрутки (выглядит то оно так, но мы все...

296