您的位置:首页 > 其它

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

2018-01-30 09:48 543 查看
前段时间一直编译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>是编译出来的二进制文件的路径

然后普通的没有权限的二进制文件也过了一个护盾的图标,双击会申请管理员权限了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: