Принудительное выполнение моего приложения MFC в качестве администратора в Vista - PullRequest
2 голосов
/ 20 марта 2009

У меня есть приложение MFC, созданное с использованием Visual Studio 2008, и оно должно работать на W2K, XP, 2003 и Vista. Приложение пишет в HKLM в реестре и будет работать только в Vista, если вы запустите его от имени администратора.

У меня вопрос: могу ли я заставить приложение автоматически запускаться от имени администратора? Включает ли это создание файла манифеста? На данный момент у меня есть следующий файл в stdafx.h, который, я думаю, создает файл манифеста на лету:

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")

Могу ли я изменить эту строку для принудительного повышения или мне нужно что-то сделать с настройками манифеста проекта VC?

Заранее спасибо.

Ответы [ 3 ]

9 голосов
/ 23 марта 2009

Я узнал, как это сделать, используя несколько расширенных опций компоновщика C ++:

  1. Откройте диалоговое окно страниц свойств проекта.

  2. Разверните узел Свойства конфигурации.

  3. Разверните узел компоновщика.

  4. Выберите страницу свойств файла манифеста.

  5. Измените свойства «Включить контроль учетных записей (UAC)», «Уровень выполнения UAC» и «Защита UI обхода UAC».

1 голос
/ 20 марта 2009

Вы можете сделать это, используя манифест. Возможно, что-то вроде этого, но я не могу вспомнить точно:

<requestedExecutionLevel level="requireAdministrator"/>
0 голосов
/ 20 марта 2009

Вы можете сделать либо. Вы можете добавить аналогичную строку с #pragma, чтобы добавить директиву requireAdministrator, или вы можете установить ее на листах свойств в VS2008.

...