这里是在VS2017下面操作为例,程序需要管理员权限运行,manifest是改动最小的方式。这里以RTVS项目为例进行讲解。
添加manifest配置文件
项目右键添加新建项,如下图所示:
修改manifestUAC权限控制
项目结构如下:
需要修改的部分:
- <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
- <security>
- <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
- <!-- UAC 清单选项
- 如果想要更改 Windows 用户帐户控制级别,请使用
- 以下节点之一替换 requestedExecutionLevel 节点。n
- <requestedExecutionLevel level="asInvoker" uiAccess="false" />
- <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
- <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
- 指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
- 如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
- 元素。
- -->
- <!--
- <requestedExecutionLevel level="asInvoker" uiAccess="false" />
- -->
- <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
- </requestedPrivileges>
- </security>
- </trustInfo>
关键配置:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
这样我们的程序就可以不用右键管理员验证了,程序启动时即弹出授权提示认证,如下图: