Доступ к реестру в C # - PullRequest
       2

Доступ к реестру в C #

1 голос
/ 16 августа 2011

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

 RegistryKey rk = Registry.LocalMachine; 
 RegistryKey sk1 = rk.OpenSubKey(KeyName,false);

, если я заменю 'KeyName' на @ "Software \ Microsoft \ Windows \ CurrentVersion \ Run" , например, он работает нормально.
если я попробую любой другой путь, который я скопирую, вставленный из regedit для примера @ "ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ ATI Technologies \ Install \ South Bridge \ ATI_AHCI_RAID" он вернет ноль.

Яработа на win7 64-bit с программой x86

1 Ответ

3 голосов
/ 16 августа 2011

В 64-битной Windows (Windows 2003+, XP и более поздних 64-битных) происходит перенаправление реестра прозрачный , обеспечивающее отдельные логические представления для 32-битных и 64-битных вызовов реестра.

Прочитайте ссылку ниже для получения дополнительной информации;это важная информация, которую необходимо знать.

Перенаправитель реестра изолирует 32-разрядные и 64-разрядные приложения, предоставляя отдельные логические представления определенных частей реестра в WOW64.Перенаправитель реестра перехватывает 32-разрядные и 64-разрядные вызовы реестра для их соответствующих представлений логического реестра и сопоставляет их с соответствующим физическим местоположением реестра.Процесс перенаправления прозрачен для приложения.Поэтому 32-разрядное приложение может получать доступ к данным реестра, как если бы оно выполнялось в 32-разрядной Windows, даже если данные хранятся в другом месте в 64-разрядной Windows.

MSDNПеренаправитель реестра

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