C # - Невозможно прочитать ключ реестра HKLM (ссылка на объект не установлена ​​для экземпляра объекта) - PullRequest
0 голосов
/ 27 июня 2019

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

Registry

Вот код (заметьте, я открываю ключ только для чтения):

try
        {
            RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\CentraStage", false);
            string connectwiseId = (string)key.GetValue("CONNECTWISEID");
            key.Close();
            MessageBox.Show(connectwiseId, "Reg Key Value", MessageBoxButtons.OK);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
        }

Всегда обнаруживается ошибка, и я получаю следующую ошибку:

[Error[2]

Разделы реестра также не входят в ветку WOW6432Node. Я также пробовал этот код безуспешно:

string connectwiseId = (string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\CentraStage", "CONNECTWISEID", null);

Есть предложения?

1 Ответ

0 голосов
/ 27 июня 2019

OpenSubKey возвращает следующий ключ по цепочке, поэтому, вероятно, вам нужно следующее:

try
    {
        // Opens the software key
        RegistryKey softwareKey = Registry.LocalMachine.OpenSubKey("SOFTWARE", false);
        // Opens the CetraStage key
        RegistryKey key = softwareKey.OpenSubKey("CentraStage", false);
        string connectwiseId = (string)key.GetValue("CONNECTWISEID");
        key.Close();
        MessageBox.Show(connectwiseId, "Reg Key Value", MessageBoxButtons.OK);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
    }

Ссылка MSDN для OpenSubKey: https://docs.microsoft.com/en-us/dotnet/api/microsoft.win32.registrykey.opensubkey?view=netframework-4.8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...