«Запрашиваемый доступ к реестру не разрешен». в Windows 7 / Vista - PullRequest
1 голос
/ 29 марта 2010

Я пытаюсь записать ключ в реестр. Он работает в Windows XP, но не работает в Windows 7 / Vista.

Приведенный ниже код вызывает исключение безопасности с описанием «Запрошенный доступ к реестру запрещен».

RegistryKey regKey = 
    Registry.LocalMachine.OpenSubKey("SOFTWARE\\App_Name\\" + subKey, true);

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

Я не хочу отключать другой процесс и, возможно, даже не хочу запрашивать какие-либо учетные данные. Просто хочу, чтобы он работал так же, как в Windows XP. Я изменил файл манифеста и удалил узел requiredExecutionLevel. Это, кажется, делает трюк.

Есть ли другой возможный обходной путь, и есть ли какие-либо серьезные недостатки в "манифестном" решении?

Ответы [ 2 ]

1 голос
/ 29 марта 2010

У вас нет прав на запись в глобальный ключ для всей машины. Можете ли вы сохранить свои данные в разделе Текущий пользовательский ключ? Это не должно требовать прав администратора.

0 голосов
/ 18 августа 2013

У меня тоже была такая же проблема с вами, и я изменил LocalMachine на CurrentUser следующим образом

RegistryKey regKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\App_Name\\" + subKey, true);
...