2013-03-06 2 views
4

Я следующий C# код, который считывает состояние контроля учетных записей из реестра в Windows 7Невозможно прочитать значение реестра в Windows 8

object obj = Registry.LocalMachine.GetValue(@"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", (long)1); 

Он отлично работает на Windows 7 с админами/не-администратор счетами. Он всегда возвращает значение по умолчанию, которое я предоставляю в Windows 8. Здесь находится раздел реестра. Я вижу его значение с помощью regedit. Но код C# не читает. Может кто-нибудь сказать почему? Это приложение .net 4. Учетная запись пользователя не имеет права администратора.

+3

Что означает «не читает»? Любое исключение, неожиданный результат ...? – ken2k

+0

Похоже, что ОС блокируется специально. Вы запросили разрешение на доступ к этой части реестра в вашем коде? –

+0

Это поможет вам. см. http://stackoverflow.com/questions/12298199/c-sharp-read-registry-windows-8 –

ответ

0

По умолчанию необходимо иметь права администратора, чтобы иметь возможность доступа к реестру. Разработчики Windows 8, возможно, думают, что это безопаснее.

+1

Нет, вам не нужны права администратора для чтения реестра. Если бы вы это сделали, как бы все работало? Представьте себе мир, в котором пользователь, не являющийся администратором, не мог прочитать реестр. –

+0

Все больше и больше видят глупые бессмысленные ответы здесь, на StackOverflow, у пользователей, у которых есть 1 точка репутации. Они похожи на спамеров. – Elmue

3

Он возвращает значение по умолчанию (как для Windows 7, так и для 8). Вот код, который считывает правильное значение реестра как на Windows 7, так и на 8, без запуска от имени администратора.

 object obj = Registry.GetValue( 
      @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\", 
      "EnableLUA", 
      (long)1); 

Обратите внимание, что мы называем GetValue метод на Registry, а не на Registry.LocalMachine, и мы передаем ключ и имя значения в виде двух отдельных параметров.

Смежные вопросы