VS 编译Win32程序默认获取管理员权限

前段时间一直编译x64程序,获取管理员权限也比较简单,直接设置UAC Execution Level为requireAdministrator即可。可是编译Win32程序的时候单独只修改这一项居然不起作用。对比配置之后,发现这个新建的工程的默认配置和x64稍微有点不一样,现在也不记得有哪些不一样了。


做好如此配置后,程序右下角就多了一个护盾图标,双击会申请管理员权限。

对比发现Generate Manifest中,Win32默认为No,然后查看Manifest File对应的路径,里面是一些配置信息

<?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' />
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

只有权限配置,也就是说只有改动的配置信息,如果没有使用此配置,则程序不具备这些配置,也就是没有管理员权限。百度后发现这个配置也可以有mt.exe手动设置。

例如打开VS2008的命令行,然后执行mt.exe 

mt.exe    -manifest      <manifest-file>        -outputresource:<exe-file>

<manifest-file>是配置文件的路径

<exe-file>是编译出来的二进制文件的路径

然后普通的没有权限的二进制文件也过了一个护盾的图标,双击会申请管理员权限了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值