QT生成的exe启动时以管理员权限启动 您所在的位置:网站首页 exe文件管理员权限运行 QT生成的exe启动时以管理员权限启动

QT生成的exe启动时以管理员权限启动

2024-07-15 21:26| 来源: 网络整理| 查看: 265

生成的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 实验室设备网 版权所有