我們知道, win7及以上的系統權限控制的非常嚴格,普通用戶在系統目錄下沒有寫的權限,軟件經常要寫一些配置文件之類的功能就無法操作, 其實特定目錄沒有寫的權限,但軟件會運行的好好的,表面沒有任何問題,它會自己重定向到C:\Users\當前登錄用戶名\AppData\Local\VirtualStore\類似這樣的文件夾下 而且也能順利的讀取寫進去的數據,win7及以上的系統有這樣的重定向機制,包括注冊表。 其實對我們軟件來說,這絕對是個隱形的bug,有時會出現莫名其妙的bug正是由這個引起,所以我們不能任由它這么任性的重定向,有種簡單的辦法就是鼠標右擊后“以管理員身份運行”即可解決該問題,但關鍵是我們不可能讓我們的客戶每次都這樣右擊管理員身份運行吧?所以我們還是得在我們自己研發的軟件上做文章 首先新建一manifest文件,并編輯:
保存為uac.manifest(文件名自取)文件,放到Qt工程目錄下,然后在同級目錄創建一rc文件并編輯 1 24
DISCARDABLE "UAC.manifest" 然后在Qt工程中修改pro文件 RC_FILE = ***.rc 編譯后即可。這樣打包后也會默認以管理員身份運行。 不過這樣有時候程序無法運行,會出現“啟動程序失敗,路徑或者權限錯誤?”這樣的錯誤 不用擔心,可以通過管理員身份運行QtCreator解決! |
|
來自: 昵稱52164085 > 《linux》