原地址:http://clacklin.blog.163.com/blog/static/103209820106108538269/
開啟Vs2005或vs2008工程,看在Properties下是否有app.manifest這個檔案;如沒有,右擊工程在菜單中選擇“屬性”,
選中“安全性”,在介面中勾選“啟用ClickOnce安全設定”後,在Properties下就有自動產生app.manifest檔案。
開啟app.manifest檔案,在<security>下加入
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" cess="false"/>
</requestedPrivileges>,重新編譯即可,
全部代碼如下所示:
<xml version="1.0" encoding="utf-8">
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<applicationRequestMinimum>
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
<defaultAssemblyRequest permissionSetReference="Custom" />
</applicationRequestMinimum>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
2) Delphi:Delphi程式必須在資源裡面嵌入MANIFEST資訊。
首先編輯一個檔案,內容如下:
<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="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
儲存為UAC.manifest,這裡檔案是隨意的。特別注意紅色的“requireAdministrator”,這個表示程式需要管理員(Administrator)才能正常運行。
然後編輯一個RC檔案,名稱為uac.rc 如下所示:
1 24 UAC.manifest
其中:
1-代表資源編號
24-資源類型為RTMAINIFEST
UAC.manifest-前面的檔案名稱
用brcc32編譯這個rc檔案為res檔案,如下所示:
brcc32 uac.rc -fouac.res
在程式裡面加入
{$R uac.res}
讓Delphi編譯的時候,把uac.res編譯進exe檔案
把檔案放到vista或win7下運行,就會看程式表徵圖下面顯示UAC盾牌標誌了。