Ошибка удаления подраздела (C #) - PullRequest
3 голосов
/ 04 июня 2011

Я создал следующий раздел реестра (скопированный через regedit):

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ тест

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

RegistryKey regKey;

    string regPath_Key = @"Software\Microsoft\Windows\CurrentVersion\test";

    regKey = Registry.CurrentUser.OpenSubKey(regPath_Key, true);

    if(regKey != null)   // Always returns null, even though the key does exist.
    {
        Registry.CurrentUser.DeleteSubKey(regPath_Key, true);
    }

У меня проблема в том, что строка if(regKey != null) всегда возвращает ноль! Я вернулся и проверил, что ключ на самом деле существует несколько раз - но все равно тот же результат. Я собираюсь предположить, что мой код где-то имеет проблемы?

Ответы [ 2 ]

2 голосов
/ 04 июня 2011

Может быть, вы работаете на 64-битной машине и ваш проект настроен на архитектуру x86? в этом случае убедитесь, что указанный вами ключ существует в HKCU \ Software \ Wow6432Node ..., поскольку каждый путь перенаправляется в этот 32-битный реестр процессов ...

1 голос
/ 04 июня 2011

Вы не должны включать HKEY_CURRENT_USER в строку, которую вы передаете Registry.CurrentUser.OpenSubKey(). Вместо этого используйте

string regPath_Key = @"Software\Microsoft\Windows\CurrentVersion\test";
...