记录 Qt/QMAKE 为可执行程序添加管理员权限
MSVC
Windows下 MSVC 套件地位超然,只需要在 .pro 文件中加入:
QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\"
重新构建
MinGW
与MSVC相比,MinGW所需的操作略微繁琐;
- 创建 .manifest 文件,如:adminboot.manifest,加入以下内容:
<?xml version="1.0"?>
<n1:assembly xmlns:n1="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><n2:trustInfo xmlns:n2="urn:schemas-microsoft-com:asm.v3"><n2:security><n2:requestedPrivileges><n2:requestedExecutionLevel level="requireAdministrator" uiAccess="false"/></n2:requestedPrivileges></n2:security></n2:trustInfo>
</n1:assembly>
- 创建 .rc 文件,如:adminboot.rc,加入以下内容:
1 24 "adminboot.manifest"
- 将两个文件放到 .pro 文件同级目录
- .pro 文件中加入
RC_FILE = adminboot.rc
- 重新构建
注意:重新编译后,可执行文件需管理员权限启动,所以如果想在QtCreator中启动可执行程序的话,需要以管理员权限启动QtCreator