win7系统开始,增加了管理员权限的限制,程序对系统关键位置的文件操作、修改注册表等都需要管理员权限才能进行。在编写Qt程序的时候不可避免的会遇到权限的问题(比如通过修改注册表实现开机启动),但是Qt官方并没有系统的支持添加管理员权限的方法。网上这方面的资料还是挺多的,提供一个方便可行的办法:
1.通过记事本新建文件,内容如下:
<?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,其实名字并不重要。
2.通过记事本新建文件,内容为:1 24 DISCARDABLE "UAC.manifest"
该文件命名为uac.rc,名字也可以自己取。其中UAC.manifest只要与上文名字一致即可。
3.将UAC.manifest和uac.rc放到需要添加管理员权限的工程目录下,也就是pro文件所在目录。
4.在工程文件中追加一行RC_FILE = uac.rc
完成这几个步骤以后,重新编译工程即可,如遇到Qt Creator报错,只需要以管理员权限运行Qt Creator,再编译工程就可以成功。编译结束后,程序图标上就会出现盾牌标志,运行的时候就会要求管理员权限。
其实这几个步骤比较机械,并没有太复杂的地方,因此我写了一个小工具实现上述功能,还集成了自定义程序图标的功能,且这两个功能是分开的,可任意选择使用。需要的朋友可以下载:
http://download.csdn.net/detail/u012952807/9567869
1.通过记事本新建文件,内容如下:
<?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,其实名字并不重要。
2.通过记事本新建文件,内容为:1 24 DISCARDABLE "UAC.manifest"
该文件命名为uac.rc,名字也可以自己取。其中UAC.manifest只要与上文名字一致即可。
3.将UAC.manifest和uac.rc放到需要添加管理员权限的工程目录下,也就是pro文件所在目录。
4.在工程文件中追加一行RC_FILE = uac.rc
完成这几个步骤以后,重新编译工程即可,如遇到Qt Creator报错,只需要以管理员权限运行Qt Creator,再编译工程就可以成功。编译结束后,程序图标上就会出现盾牌标志,运行的时候就会要求管理员权限。
其实这几个步骤比较机械,并没有太复杂的地方,因此我写了一个小工具实现上述功能,还集成了自定义程序图标的功能,且这两个功能是分开的,可任意选择使用。需要的朋友可以下载:
http://download.csdn.net/detail/u012952807/9567869