3分钟管理员权限给程序设置.配置文件的内容

2024-03-08
来源:网络整理

》 阅读本文大约需要3分钟

您可能熟悉管理员权限。 有些软件在运行时会弹出安全提示,提示您是否以管理员权限运行。 单击“确定”即可正常运行。

随着系统的升级,在7以上的系统中,我们可能需要管理员权限才能读写一些特殊的位置,否则会导致读写失败,比如读写注册表,所以这种情况下我们需要获得管理员权限启动时的权利

要设置程序的管理员权限,只需设置应用程序清单配置即可。

场景描述

上周五我使用Qt的打包工具打包了一个客户端。 打包完成后,一切正常,只是写注册表失败。 结果发现失败的电脑都是以上版本,于是奇怪的问题就来了。 我当时大概就猜到了。 可能是权限问题

因此,右键单击安装包,让其以管理员权限运行。 安装完成,没有任何问题。那么问题就定位了。 10及以上等系统权限较高,所以我们需要给我们的安装包赋予管理员权限。

原理分析

系统如何知道exe正在以什么权限运行? 其实是通过配置文件来确认的。 配置文件的名称可以随意选择,比如uac这样的。

在编译我们自己的exe的过程中,我们可以将这个配置文件一起编译成最终的exe。

准备配置文件

uac 的内容。 配置文件大致如下

最重要的就是这句话

微信小程序管理员授权_微信小程序管理员权限_微信小程序用户权限控制

关于类型的信息请查看微软官方文档

[1]

以上四种配置类型可以根据自己的需求进行配置。

项目配置

Qt Pro 配置

win32 { # Use our own manifest file CONFIG -= embed_manifest_exe RC_FILE = main.rc }

main.rc文件内容

#define RT_MANIFEST 24 #define CREATEPROCESS_MANIFEST_RESOURCE_ID 1 CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "uac.manifest"

然后重新编译您的项目。 最终生成的exe的启动权限将是管理员权限。 您可以检查一下您的软件下方是否有盾牌图标。 如果是这样,恭喜设置成功。 如果没有,请自行检查上述重要设置。

总结

这次给打包的exe设置了管理员权限,这样我们的软件打包后生成的新exe也会有同样的权限。 由于我们的软件在安装过程中需要写入注册表,所以这正好解决了我们当前的问题

上述方法是通过修改QIFW源码实现的。 如果直接使用官方的exe包是达不到这个效果的。

参考

[1]

UAC类型:“/post/---of--.html#%E5%90%84%E7%A7%8D%E4%B8%8D%E5%90%8C%E7%9A%84-uac-% E6%B8%85%E5%8D%95%E9%80%89%E9%A1%B9",

分享