1、Qt Creator中
方案一:(仅适用于使用msvc编译器)
在PRO文件中添加一行指令即可,
QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\"
MANIFESTUAC内容如下:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='requireAdministrator' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
方案二:(适用于mingw32编译器)
先创建一个 .manifest 文件,如:app.manifest,文件内容如下:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='requireAdministrator' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
然后在exe所在的目录中执行mt指令(mt指令在VS自带的“开发人员命令提示”工具中)
1 mt.exe -manifest "app.manifest" -outputresource:"app.exe";#1
注意:exe和manifest文件要在同一目录中。
以上就是让Qt程序以管理员权限运行的两种方法。
2、vs中
方案一:在你的工程右键属性,找到linker-->manifest file.之后设置UAC execution level为:requireAdmistrator.