Запрошенный доступ к реестру не разрешен

Я пишу утилиту настройки, которая модифицирует некоторые ключи под HKEY_CLASSES_ROOT .

Все работает отлично под Windows XP и так далее. Но я получаю ошибку. Requested registry access is not allowed в Windows 7. Vista и 2008, я думаю, тоже.

Как мне изменить свой код, чтобы добавить поддержку UAC?

app.manifest должен выглядеть следующим образом:

            

Если вам не нужны админы для всего приложения или только для нескольких редких изменений, вы можете внести изменения в новый процесс и запустить его, используя:

 Process.StartInfo.UseShellExecute = true; Process.StartInfo.Verb = "runas"; 

который будет запускать процесс как администратор, чтобы делать все, что вам нужно, с реестром, но вернитесь в свое приложение с нормальными привилегиями. Таким образом, он не запрашивает у пользователя диалог UAC при каждом запуске.

Вы не можете писать на HKCR (или HKLM) ульи в Vista и более поздних версиях Windows, если у вас нет административных прав. Таким образом, вам нужно либо войти в систему как администратор, прежде чем запускать свою утилиту, дать ей манифест, который говорит, что для него требуется уровень администратора (который будет запрашивать у пользователя информацию для входа в систему администратора) или прекратить изменение вещей в местах, – Администраторы не должны играть. 🙂

В качестве временного исправления пользователи могут щелкнуть правой кнопкой мыши утилиту и выбрать «Запуск от имени администратора».

Я пытался использовать verb = "runas" , но при попытке обновить значение реестра я все равно получал UnauthorizedAccessException. Оказалось, что это произошло из-за того, что не был открыт подраздел с возможностью записи в true.

 Registry.OpenSubKey("KeyName", true); 

Не удается записать ключ реестра, получив UnauthorizedAccessException

Эта проблема связана с предоставлением необходимого разрешения учетной записи пользователя, на которой выполняется приложение. Чтобы прочитать аналогичную ситуацию и подробный ответ на правильное решение, как описано в Microsoft, не стесняйтесь посетить этот пост: http://rambletech.wordpress.com/2011/10/17/requested-registry-access-is- не допускается/

  • Как предотвратить Vista от необходимости повышения на patch.exe?
  • Windows 10: нет приглашения UAC в проводнике
  • Учетная запись администратора и повышенные привилегии: какая разница?
  • Остановить UAC / Secure Desktop от затемнения экрана
  • Как отключить запрос администратора в Windows 8?
  • Обнаруживать, если он работает как администратор с повышенными привилегиями или без них?
  • Предоставление приложения повышенного UAC
  • Как запустить WampServer без предоставления прав администратора?
  • Что может привести к тому, что изображения не будут отображаться в справке HTML (chm-файлы), если UAC включен?
  • Избегание UAC, но запуск повышенного процесса с помощью службы Windows
  • Отключить Vista UAC только для администратора
  • Interesting Posts
    Давайте будем гением компьютера.