【Qt】一劳永逸解决UAC问题

时间:2022-03-30 19:23:45

如果你的程序跑在一个开启了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文件了。

【Qt】一劳永逸解决UAC问题

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