强制我的MFC应用程序在Vista上以管理员身份运行

时间:2009-03-20 15:36:47

标签: c++ mfc windows-vista

我有一个使用Visual Studio 2008构建的MFC应用程序,它需要在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项目清单设置执行某些操作?

提前致谢。

4 个答案:

答案 0 :(得分:9)

我使用一些高级C ++链接器选项找到了如何执行此操作:

  1. 打开项目的“属性页”对话框。

  2. 展开“配置属性”节点。

  3. 展开链接器节点。

  4. 选择清单文件属性页。

  5. 修改启用用户帐户控制(UAC),UAC执行级别和UAC绕过UI保护属性。

答案 1 :(得分:1)

您可以使用清单执行此操作。 可能是这样的,但我不记得确切:

<requestedExecutionLevel level="requireAdministrator"/>

答案 2 :(得分:0)

你可以做任何一件事。您可以使用#pragma添加类似的行以添加requireAdministrator指令,也可以在VS2008的属性表中设置它。

答案 3 :(得分:0)

  1. 选择有问题的项目,进入菜单Project> Properties。

  2. 导航到“配置属性”>“链接器”>“清单文件”。

  3. 在“ UAC执行级别”条目中,选择选项

  

requireAdministrator(/ level ='requireAdministrator')

enter image description here