Доступ к локальной машине в Windows 7 - PullRequest
1 голос
/ 14 июня 2010

Я хочу создать раздел реестра в кусте локального компьютера в Windows 7. Для этого я использовал следующий код:

    RegistryKey regKey = Registry.LocalMachine.CreateSubKey(@"Software\Test", RegistryKeyPermissionCheck.ReadWriteSubTree);

код работает без ошибок. но когда я смотрю на свой реестр с помощью regedit.exe, я не вижу ключ, который я только что создал. Может ли кто-нибудь помочь мне, пожалуйста.

привет

Ответы [ 3 ]

2 голосов
/ 29 декабря 2010

Вы на 64-битной машине?

Если вы работаете на 64-битной машине, проверьте параметры сборки проекта (Свойства проекта> вкладка «Сборка») и отметьте целевой объект платформы.

Если целевое значение Platform установлено на x86, и вы работаете на 64-битной машине, ключ будет создан под 'Wow6432Node'

В regedit.exe загляните в HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node и вы увидите там свой ключ.

Измените цель платформы на Any CPU, и она создаст ключ в HKEY_LOCAL_MACHINE\SOFTWARE

1 голос
/ 25 июня 2010

Какова длина вашего ключевого имени? В regedit есть известная ошибка, которая не позволяет видеть ключи с именами длиннее 256 символов.

1 голос
/ 14 июня 2010

По всей вероятности, ваше приложение работает без манифеста и выполняет запись в виртуализированную копию HKLM. Чтобы проверить мою теорию, щелкните правой кнопкой мыши свой exe и выберите Запуск от имени администратора. Если он затем пишет в правильную область, это то, что происходит.

Если это проблема, либо передумайте писать в HKLM (пользователям не нравятся запросы UAC), либо поместите в исполняемый файл манифест с requireAdministrator, чтобы он всегда запрашивал повышение прав и работал должным образом.

...