涉及到往系统分区写入文件时,如果程序没有获得管理员权限,会出现新建文件成功但无法写入数据的问题。
msvc版本获取管理员权限的方法比较简单,只要在pro文件中加入:
QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\"如果使用mingw32版本,需要如下步骤:
① 新建一个文本文档,填入以下内容后,保存为uac.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>② 将uac.manifest与应用放在同一目录,如下图:
③ 打开VS自带的“开发人员命令提示”工具,使用cd命令定位到上一步的目录,如下图:
输入如下指令:
mt.exe -manifest "uac.manifest" -outputresource:"example.exe";#1成功后的提示如下图:
可以从这里下载mt.exe及其他文件,以及一个批处理,可以自动完成这个功能:
http://pan.baidu.com/s/1slGZ5e9
版权声明:本文为lixiaoxin1989原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。