vs2003,C++工程,如何将管理员权限内嵌到启动工程里

虽然已过时的不能在过时,还是记录一下,自己亲测有效。我说的都是在项目启动的exe工程上的设置,跟其他的dll工程无关。

1. 在工程的资源目录下,.rc存放的那个目录里,首先您建立这样一个文件Startup.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="Startup.manifest"
   type="win32"
/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
   <security>
       <requestedPrivileges>
           <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
       </requestedPrivileges>
   </security>
</trustInfo>
</assembly>

里面有一行:name="Startup.manifest",指定了这个文件的名字。如果您要换名字的话,文件名跟这个一定要保持一致。

2. 工程添加这个资源文件

vs2003,C++工程,如何将管理员权限内嵌到启动工程里

接着

vs2003,C++工程,如何将管理员权限内嵌到启动工程里

继续

vs2003,C++工程,如何将管理员权限内嵌到启动工程里

点击确定后,找到该资源文件的属性设置,如下:

vs2003,C++工程,如何将管理员权限内嵌到启动工程里

将ID值设为1,然后您在重编一下这个exe,再次生成的exe就内嵌管理员打开权限了。我的截图里有个24,那是我已经添加过了的,截图只是为了示范。