我使用的是MinGW 32位的编译器,不同的编译器获取管理员权限的方式不同。这里只介绍MinGW。
一、创建adminboot.manifest文件
首先先创建adminboot.manifest文件在文件里加入这些代码,adminboot不是固定的,可以自己任意取名字。
<?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>
二、创建adminboot.rc文件
adminboot.rc要和adminboot.manifest文件名一致,在adminboot.rc文件中加入下面代码
1 24 "adminboot.manifest"
其中双引号中是第一部创建的文件名。
三、在QT pro文件中添加
在Pro文件中需要添加下面语句
RC_FILE = adminboot.rcDISTFILES += \adminboot.manifest \adminboot.rc
四、重启Qt并且以管理员权限打开
以管理员权限打开Qt后,编译,此时的exe文件上面有一个管理员权限盾牌的标志。这个时候点击应用程序就会弹出是否授权的框。