vs2005 生成的应用程序 在win7下以管理员权限运行

在开启UAC的时候,在win7中执行程序默认是以一种权限较低的方式执行的,但是在这种方式下,我们有些操作会失败(比如修改注册表,监听端口,往系统目录写入文件等),要实现这些操作,就需要我们以管理员权限执行程序了。

当然,只有在程序上右键,选择“以管理员执行”就可以,不过如何让程序自己自动以管理员权限来运行呢,这就需要Manifest了。

 

两种方法

 

在已经生成的exe中插入manifest(应用程序清单文件 )

 

建立文本文件, 命名为”可执行文件名.exe.manifest”,并加入以下代码:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="VistaLogoDemo" type="win32"/>
  
<description>Description of your application</description>
  
<!-- Identify the application security requirements.-->
  
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    
<security>
      
<requestedPrivileges>
        
<requestedExecutionLevellevel="requireAdministrator" uiAccess="false"/>
      
</requestedPrivileges>
    
</security>
  
</trustInfo>
</assembly>

运行级别有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" />
表明需要管理员权限才能运行,此时会自动弹出要求输入管理员用户,密码的界面

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值