现在的位置: 首页 > 综合 > 正文

win7 Vista下让程序默认以管理员权限运行

2013年09月03日 ⁄ 综合 ⁄ 共 1632字 ⁄ 字号 评论关闭

 转自:http://wangzai9931.blog.51cto.com/168627/164091

在某些时候,我们的程序需要执行一些系统的操作,需要使用管理员权限才能完成,所以,我们必须让用户使用管理员权限来执行我们的程序。本文主要介绍,,给应用程序添加一个manifest文件,程序运行时系统就会跳出UAC对话框,获得管理权限。

 
以下使用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>

抱歉!评论已关闭.