Невозможно получить доступ к разделам HKLM \ SOFTWARE на Win7 - PullRequest
1 голос
/ 20 ноября 2011

Я пишу эту программу, которая должна получить доступ к реестру, чтобы получить некоторую информацию о машине. Его всегда должен запускать кто-то из группы локальных администраторов, и он будет использоваться на машинах Server 2003 и 2008. В основном, он работал нормально по большей части на коробке, на которой я в основном пишу, а также на моих тестовых серверах 2003 и 2008 годов. Проблема в том, что, когда я захожу на свой ноутбук с Windows 7, я не могу использовать его для тестирования, поскольку у меня возникают ошибки при попытке прочитать или записать реестр ниже HKEY_LOCAL_MACHINE \ SOFTWARE.

Я вошел в систему как пользователь, являющийся локальным администратором, и я могу запустить Regedit для создания ключа, такого как test9999. Если я использую следующее, оно всегда вернется к нулю.

RegistryKey testKey = Registry.LocalMachine.OpenSubKey ("ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ test9999");

Я попытался удалить подраздел, и ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ вернется, но я не смог получить ничего ниже этого.

Я использую MS VC # Express, и я пытался запустить его "как администратор", а также пытался запустить .exe таким же образом, но он все еще продолжает возвращать ноль для всего, что ниже Software. Чего мне не хватает?

1 Ответ

0 голосов
/ 20 ноября 2011

Оказывается, что поведение перенаправления реестра для 32-разрядных процессов, работающих в 64-разрядной версии Windows, было изменено в Windows 7 и Windows 2008 R2, что может объяснить, почему он работает в Windows 2008 (не R2, я полагаю), а не в Windows 7.

Подробнее об этом здесь: http://msdn.microsoft.com/en-us/library/aa384232(v=vs.85).aspx

...