给.exe文件添加管理员权限(MinGW)--Qt

前言

当用户具有本地管理员权限时,他们可以在自己的工作区做任何想做的事情。比如下载任意应用程序,使用任何程序,甚至忽略或撤销IT管理员对他们设备所做的设置。很多本地管理员权限用户——尤其是高层——不喜欢无法完全控制设备所带来的枷锁,因此很多管理员让用户做自己设备的主人。

                                                                                                                          ————百度百科

在我们做自己的程序,有时候需要给予程序更大的权限,便于整个程序的运行,增加体验感。

网上有很多qt给程序添加管理员权限的例子,但是针对MinGW编译器的例子就比较混乱,或者说写的过于简洁,对于我这种在这方面毫无基础的看着很费劲,尝试了多种方法,终于成功了。所以在这里详细的记录一下。

步骤

先说下我的用的是Qt5.7.1,编译器是MinGW。

添加管理员权限,需要两个文件:.rc文件.manifest文件。

先说Manifest,Manifest事实上就是一个以.manifest为后缀的XML文件,用于组织和描述隔离应用程序及并行组件,其内部的信息如<assemblyIdentity>元素则标识着一个唯一的程序集,和其他信息一起,他们用于COM类、接口及库的绑定和激活,而这些信息,以往都是存储在注册表中的。另外,Manifests也制定了组成程序集的文件及Windows类。

我的理解就是用于配置的xml文件,只不过后缀特殊。

现在暂且我们将manifest文件命名为:app.exe.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>

大体上通看,我们可以理解到它设置了文件的编码格式,还有一些版本信息之类,然后我们就可以看到它设置了security安全部分的 requestedPrivileges请求权限,等级为requireAdministrator管理员权限。所以若其他时候要改成别的,就需要改掉这个关键词就好了。

再说.rc文件,.rc文件是个资源文件,具体的语法等用到的时候再学吧,我看着有点复杂。

我们将.rc文件命名为res.rc文件吧,它只用到了一句话,如下(注意与上文的.manifest文件名对应)

1 24 app.exe.manifest

看到rc文件很容易想到,在设置exe文件的图标时,rc文件也只需要一句话就可以实现,如下(注意ico文件路径):

IDI_ICON1               ICON    DISCARDABLE     "icon.ico"

最后看pro文件,也就是把rc文件加到项目中,如下:

RC_FILE=res.rc

 

结束语

好了,结束了,看着很简单,但不懂就是搞不明白,这又什么办法~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值