在Windows 7 下使用Visual Studio 2010 编写自动申请管理员权限运行的程序

自从Vista推出UAC之后,遇到程序需要执行一些高安全级别的操作的时候就需要系统管理员权限,如何让自己写的程序能够自动向系统申请管理员执行权限,也就是在程序的图标上出现一个小盾牌的图标呢,使用Visual Studio 2010可以很方便的做到这一点。具体步骤如下:

1、在项目中增加一个Application Manifest File

2、打开新增加的app.manifest文件,文件的内容如下:


ExpandedBlockStart.gif app.mainfest
<? 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" >
  
< assemblyIdentity  version ="1.0.0.0"  name ="MyApplication.app" />
  
< trustInfo  xmlns ="urn:schemas-microsoft-com:asm.v2" >
    
< security >
      
< requestedPrivileges  xmlns ="urn:schemas-microsoft-com:asm.v3" >
        
<!--  UAC Manifest Options
            If you want to change the Windows User Account Control level replace the 
            requestedExecutionLevel node with one of the following.

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            Specifying requestedExecutionLevel node will disable file and registry virtualization.
            If you want to utilize File and Registry Virtualization for backward 
            compatibility then delete the requestedExecutionLevel node.
        
-->
        
< requestedExecutionLevel  level ="requireAdministrator"  uiAccess ="false"   />
      
</ requestedPrivileges >
    
</ security >
  
</ trustInfo >
  
  
< compatibility  xmlns ="urn:schemas-microsoft-com:compatibility.v1" >
    
< application >
      
<!--  A list of all Windows versions that this application is designed to work with. Windows will automatically select the most compatible environment. -->

      
<!--  If your application is designed to work with Windows 7, uncomment the following supportedOS node -->
      
<!-- <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> -->
      
    
</ application >
  
</ compatibility >
  
  
<!--  Enable themes for Windows common controls and dialogs (Windows XP and later)  -->
  
<!--  <dependency>
    <dependentAssembly>
      <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*"
        />
    </dependentAssembly>
  </dependency>
-->

</ asmv1:assembly >


3、把<requestedPrivileges〉节中的配置项<requestedExecutionLevel level=" asInvoker" uiAccess="false" />改为<requestedExecutionLevel level=" requireAdministrator " uiAccess="false" />

4、重新编译程序,编译好后的程序图标上就会出现一个小盾牌,就可以以管理员身份启动了。

转载于:https://www.cnblogs.com/endlock/archive/2010/05/25/1743756.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值