以下使用VS2008+WTL8.0+Vista舉例 .
1. 使用VS2008建立WTL工程,在新建工程嚮導中選擇“Add Common Controls Manifest” 。
2. 編譯工程,在輸出目錄生成 *.exe.embed.manifest 文件,使用記事本打開,將level="asInvoker" 改成 level="requireAdministrator" .
3. 新建 Custom 資源,Resource types輸入24 .
4. 將*.exe.embed.manifest 文件的內容Copy到Custom 資源裏 .
5. 在resource.h 中將Custom 資源ID改成1 。
6. 編譯,這時,生成的EXE文件圖標上多了一個盾牌標誌。
7. 修改之後的Mainfest文件內容大概如下:
<?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" uiAccess="false">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*">
</assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*">
</assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>