代码之家  ›  专栏  ›  技术社区  ›  Rob

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

  •  2
  • Rob  · 技术社区  · 15 年前

    我有一个使用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项目清单设置做些什么?

    事先谢谢。

    3 回复  |  直到 15 年前
        1
  •  9
  •   Rob    15 年前

    我发现了如何使用一些高级C++链接器来实现这一点:

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

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

    3. 展开链接器节点。

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

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

        2
  •  1
  •   demoncodemonkey    15 年前

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

    <requestedExecutionLevel level="requireAdministrator"/>
    
        3
  •  0
  •   Nick    15 年前

    你也可以这样做。您可以使用pragma添加类似的行来添加RequiredMinistrator指令,也可以在VS2008的属性表中进行设置。