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