vs2005 生成的應用程式 在win7下以管理員許可權執行
在開啟UAC的時候,在win7中執行程式預設是以一種許可權較低的方式執行的,但是在這種方式下,我們有些操作會失敗(比如修改登錄檔,監聽埠,往系統目錄寫入檔案等),要實現這些操作,就需要我們以管理員許可權執行程式了。
當然,只有在程式上右鍵,選擇“以管理員執行”就可以,不過如何讓程式自己自動以管理員許可權來執行呢,這就需要Manifest了。
兩種方法
一 在已經生成的exe中插入manifest(應用程式清單檔案 )
建立文字檔案, 命名為”可執行檔名.exe.manifest”,並加入以下程式碼:
<?xml version="1.0" encoding="UTF-8" standalone="yes"
執行級別有3種,這裡使用 requireAdministrator 表示以管理員許可權執行,如果寫為 aslnvoker,那麼就是以普通許可權執行。
將該檔案存放執行檔案目錄下
開啟vs2005 只加載生成的exe執行檔案
新增資源匯入manifest檔案命名為RT_MANIFEST,將其ID改為1
儲存exe。
這樣在V或7下就會有盾牌標誌,程式啟動會提示UAC而管理員許可權啟動
二 在工程中加入
專案-->屬性-->連結器-->清單檔案 生成清單檔案 是
VS2008 VS2010 在選項中都有 UAC執行級別選項 選擇 requireAdministrator 即可
VS2005中沒有此選項,則需要
開啟manifest檔案加入
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"><security><requestedPrivileges><requestedExecutionLevellevel="requireAdministrator" uiAccess="false"/></requestedPrivileges></security></trustInfo>
道理和第一種方法相同
重點在這個節點
<requestedExecutionLevel level="requireAdministrator" />
表明需要管理員許可權才能執行,此時會自動彈出要求輸入管理員使用者,密碼的介面