1. 程式人生 > >【Qt】一勞永逸解決UAC問題

【Qt】一勞永逸解決UAC問題

如果你的程式跑在一個開啟了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檔案中加一行
QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\"