您的位置:首页>科学 >【Qt】一劳永逸解决UAC问题(修改mkspecs\win32-msvc2012\qmake.conf)

【Qt】一劳永逸解决UAC问题(修改mkspecs\win32-msvc2012\qmake.conf)

2023-09-26 12:24
-->

如果你的程序跑在一个开启了UAC保护的系统中,而你的程序又没有"盾牌"的话,程序总是会受到各种阻挠的,比如读写文件,写注册表等。

有了"盾牌"的话就不会出现一些莫名其妙的问题了。

打开文件 "mkspecs\win32-msvc2012\qmake.conf"。注意,我这里用的是VC2012,所以文件夹是win32-msvc2012,根据自己的编译器选择对应的目录

找到

QMAKE_LFLAGS_EXE        = \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"

改为

QMAKE_LFLAGS_EXE        = \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"\"/MANIFESTUAC:level=\'requireAdministrator\' uiAccess=\'false\'\"

红色的部分是添加的属性。

这样,以后生成的程序都自带"盾牌"了,不用再去设置每个.pro文件了。

 
设置单个工程的办法原理一样,只是在工程的.pro文件中加一行
  1. QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\"

http://www.webguidecorpuschristi.com/aqtata/article/details/17222691

-->