代码实现 程序默认以管理员身份运行

VC编译出来的应用程序在vista下运行,有可能因为权限问题,不能成功运行。

用以下办法,给应用程序添加一个manifest文件,程序运行时系统就会跳出UAC对话框,获得管理权限。

1 .打开应用程序的源代码工程

2 .添加一个“custom”资源, " resource type " 填24,把资源ID改为1,然后把以下内容复制到资源内容中保存

<? 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
= " mulitray.exe.manifest "
  type
= " win32 "
/>
< trustInfo xmlns = " urn:schemas-microsoft-com:asm.v3 " >
 
< security >
   
< requestedPrivileges >
       
< requestedExecutionLevel level = " requireAdministrator " uiAccess = " false " />
   
</ requestedPrivileges >
 
</ security >
</ trustInfo >
</ assembly >

3 .重新编译应用程序,此时会发现,广用程序的图标在vista下会多出一个小盾标志。




不使用manifest的话也可以用这个方法

在Windows Vista里面,ShellExecuteExW lpVerb的参数可以传入runas命令,使得系统调用 ShellExecuteExW 的时候

会强制将目标文件以完全admin模式启动,即使目标文件的manifest没有申明需要完全admin权限。

效果等同于在目标程序上右键点击,然后选择 run as administrator 菜单内容。

转载于:https://www.cnblogs.com/jcss2008/archive/2009/08/20/1550761.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值