實(shí)現(xiàn)讓易語(yǔ)言編譯的32位程序在64位Windows7系統(tǒng)非管理員帳戶中執(zhí)行
昨天有易語(yǔ)言開(kāi)發(fā)者向我求助,說(shuō)他用易語(yǔ)言編譯的32位程序軟件,發(fā)布給64位操作系統(tǒng)Win 7用戶使用,因?yàn)樵撚脩舸_定沒(méi)有管理員權(quán)限,而程序啟動(dòng)時(shí)又要求必須輸入管理員密碼,如此陷入困境。 目標(biāo)企業(yè)用戶管理嚴(yán)格,要求為普通用戶分配管理員權(quán)限是不切實(shí)際的,只能開(kāi)發(fā)人員從軟件開(kāi)發(fā)的角度在技術(shù)上解決。
我聽(tīng)到這個(gè)問(wèn)題后,第一感覺(jué)是微軟用戶帳戶控制(UAC)引發(fā)的,估計(jì)通過(guò)給 exe 添加特定的 manifest 資源應(yīng)該可以解決。于是我給了他一段代碼,讓他用 ResHacker 之類的軟件添加到軟件里面去,試一試能不能解決問(wèn)題:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> </assembly>
結(jié)果測(cè)試之后他發(fā)現(xiàn),非常成功的解決了問(wèn)題。修改后的軟件發(fā)布給用戶測(cè)試,啟動(dòng)時(shí)也不再提示輸入管理員密碼了,功能一切正常。
下面對(duì)比一下易語(yǔ)言編譯時(shí)默認(rèn)加入的 manifest 資源:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="......" type="win32" /> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
會(huì)發(fā)現(xiàn)兩者有細(xì)微的區(qū)別:asInvoker 和 requireAdministrator 的區(qū)別。后者會(huì)要求軟件啟動(dòng)時(shí)必須有管理員權(quán)限,否則拒絕工作。那能不能一刀切的要求易語(yǔ)言默認(rèn)采用 asInvoker 呢?恐怕還是不行的,因?yàn)樾薷腤indows注冊(cè)表之類的行為還是必須得有管理員權(quán)限的(否則修改無(wú)效)。或許在某些條件下可以做一些智能判斷?
附 ResHacker (Resource Hacker) 3.6 下載地址:
相關(guān)文章
易語(yǔ)言實(shí)現(xiàn)對(duì)比版本號(hào)檢查是否需要更新的代碼
今天小編就為大家分享一篇關(guān)于易語(yǔ)言實(shí)現(xiàn)對(duì)比版本號(hào)檢查是否需要更新的代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-11-11易語(yǔ)言取運(yùn)行目錄的知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家總結(jié)了關(guān)于易語(yǔ)言取運(yùn)行目錄的知識(shí)點(diǎn),有興趣的朋友們學(xué)習(xí)下2019-02-02易語(yǔ)言中Com對(duì)象和Office之間的交互使用方法
今天小編就為大家分享一篇關(guān)于易語(yǔ)言中Com對(duì)象和Office之間的交互使用方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10易語(yǔ)言無(wú)需模塊設(shè)置自動(dòng)關(guān)閉信息框的代碼
今天小編就為大家分享一篇關(guān)于易語(yǔ)言無(wú)需模塊設(shè)置自動(dòng)關(guān)閉信息框的代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-11-11總結(jié)VC與易語(yǔ)言DLL互相調(diào)用的方法
在本篇文章里我們給大家總結(jié)了關(guān)于VC與易語(yǔ)言DLL互相調(diào)用的方法內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2018-10-10易語(yǔ)言批量檢測(cè)QQ號(hào)昵稱的方法(推薦)
這篇文章主要介紹了易語(yǔ)言批量檢測(cè)QQ號(hào)昵稱的方法,涉及到易語(yǔ)言命令方面的知識(shí)點(diǎn),本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08零基礎(chǔ)易語(yǔ)言入門(mén)教程(三)之了解控制臺(tái)程序
易語(yǔ)言是一門(mén)以中文作為程序代碼編程語(yǔ)言。本文給大家介紹零基礎(chǔ)易語(yǔ)言入門(mén)教程(三)之了解控制臺(tái)程序的相關(guān)知識(shí),介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-05-05