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