QT生成的exe启动时以管理员权限启动 | 您所在的位置:网站首页 › exe文件管理员权限运行 › QT生成的exe启动时以管理员权限启动 |
生成的exe有时候因为一些账户权限问题,可能会导致获取一些文件的信息失败,出现一些异常的情况,因为这个原因,要给软件加一些管理员权限 网上百度情况是在QT下有两种加管理员权限的方法,一种是QT中MSVC编译器的情况下加权限,另一种是在VS自带的 “开发人员命令提示” 加权限的方式,其实还有第三种方法:是在QT的Pro中附加其他命令,在编译期就直接附加权限(需要两个文件配合,但是只需要一次配置即可) MSVC下加权限的方法: //适用于MSVC编译器在QT Pro文件中附加 QMAKE_LFLAGS += /MANIFESTUAC:"level='requireAdministrator'uiAccess='false'" // vs2013在XP运行 QMAKE_LFLAGS +=/SUBSYSTEM:WINDOWS,\"5.01\"上面这种方法,没有运行成功,不是说不行,只是我的代码是在MinGW下直接弄得,可能是两个编译器的编码格式不一样,导致老报什么少")"的错误,还有什么常量错误,后来由于麻烦就没有再修改尝试 用VS附加权限(非编译期附加)先创建一个.manifest文件,如:getAdmin.manifest,文件内容如下: 该文件放在exe所在目录下,然后通过VS 自带的“开发人员命令提示”工具,打开这个工具,然后到exe所在目录,附加下面命令 // #1必须加 mt.exe -manifest "getAdmin.manifest" -outputresource:"***.exe";#1这样就可以附加成功 QT下MinGW加权限(编译期附加)这种方法也需要先创建.manifest文件,然后再创建一个.rc文件,这两个文件都需要放在Pro文件同级目录下 // rc文件内容 1 24 DISCARDABLE "getAdmin.manifest"然后在Pro文件中再附加如下代码 RC_FILE = getAdmin.rc重新构建一下,如果不成功,重启QT软件,以管理员权限打开QT软件,这样再重新编译时就没有问题了 |
CopyRight 2018-2019 实验室设备网 版权所有 |