Проблема с доступом к реестру - PullRequest
2 голосов
/ 09 июня 2010

У меня есть приложение для форм Windows, которое изменяет некоторые разделы реестра в разделе программного обеспечения.Не администраторы Vista жалуются, что они получают ошибку разрешения.Я сделал то, что было сказано в этом посте:

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

Создал файл app.manifest и вставил туда то, что было сказано.Нужно ли выравнивать эти значения в моем приложении:

<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />

Кроме того, когда я компилирую в режиме выпуска, я вижу только файл * .vshost.manifest, но не файл * .manifest.Я попытался переименовать vshost, но он все равно не будет работать, если я не являюсь администратором.

Я думаю, что я спрашиваю здесь, как мне развернуть этот файл манифеста?Я искал в Google, но не могу найти какую-либо полезную информацию.

1 Ответ

2 голосов
/ 09 июня 2010

Важная часть в другом посте, на который вы ссылаетесь, такова:

 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
  <security>
     <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
     </requestedPrivileges>
  </security>

Устанавливая для параметра requestExecutionLevel значение «requireAdministrator», ваше приложение будет запрашивать права администратора при запуске. Это также приведет к тому, что на значке приложения отобразится наложение значка щита UAC (сообщающее пользователю, что для этого исполняемого файла требуются права администратора). Причина, по которой вы не видите файла манифеста в выходном каталоге, вероятно, заключается в том, что настройкой по умолчанию является вставка манифеста в исполняемый файл. Вы можете изменить этот параметр, чтобы создать и использовать внешний манифест.

Для параметров манифеста в Visual Studio проверьте свойства проекта, затем выберите «Свойства конфигурации» -> «Инструмент манифеста» -> «Ввод и вывод». Там вы можете указать дополнительные файлы манифеста, которые будут включены в ваш манифест, а также указать, хотите ли вы встроить манифест или нет.

Надеюсь, это поможет.

...