C++builder或Delphi工程设置以管理员身份运行

创建一个文本文件,内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity type="win32" name="App" version="3.1.0.0" processorArchitecture="*"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
        </requestedPrivileges>
    </security>
  </trustInfo>
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <!--The ID below indicates application support for Windows Vista -->
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
      <!--The ID below indicates application support for Windows 7 -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
    </application>
  </compatibility>
</assembly>

存为123.manifest.(You can add more items to this manifest. You can also remove Microsoft.Windows.Common-Controls parts to disable the theme support.参考:http://stackoverflow.com/questions/4757533/delphi-7-vista-windows-7-manifest. )

再创建一个文本文件,内容如下:
1 24 "123.manifest"
存为123.rc;其中:1-代表资源编号 ;24-资源类型为RTMAINIFEST。


然后在BCB中打你的工程,选择菜单上的Project-->Add to project-->找到刚才创建的123.rc,添加进来编译就行了.

如果BCB版本较高可参考:http://blog.sina.com.cn/s/blog_9e1698c80101h3nz.html.


用下面的方法也可以:
在Windows Vista里面,ShellExecuteEx lpVerb的参数可以传入runas命令,使得系统调用 ShellExecuteEx 的时候,会强制将目标文件以完全admin模式启动,即使目标文件的manifest没有申明需要完全admin权限。
效果等同于在目标程序上右键点击,然后选择 run as administrator 菜单内容。


如果在IDE中运行程序时报错“Unable to create process:请求的操作需要提升”,这是因为delphi调试启动需要UAC权限,delphi没有以管理员身份启动,这样delphi createprocess出来的进行就同样不是管理员权限了。只要以管理员身份启动delphi即可。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值