CodeBlocks设置程序UAC执行级别

在vs里设置UAC执行级别是很容易的,但是CodeBlocks并不原生支持UAC的设置。实际上,Windows是通过在程序中嵌入带UAC选项的manifest清单文件来实现程序的UAC支持的。所以,我们可以设法在CodeBlocks的C/C++项目中添加清单文件,让生成的程序带有安全盾,双击运行时自动请求管理员权限,如下所示:

CodeBlocks设置程序UAC执行级别_第1张图片


具体的嵌入方法很简单,把下面两段内容分别保存为resource.rc和manifest.xml:

#include <windows.h>
1                  RT_MANIFEST    ".\\manifest.xml"


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


然后以管理员权限打开CodeBlocks,在任意的C/C++项目中添加上面两个文件(最好先把这两个文件移至项目目录下):

CodeBlocks设置程序UAC执行级别_第2张图片

CodeBlocks设置程序UAC执行级别_第3张图片

CodeBlocks设置程序UAC执行级别_第4张图片


接下来,就可以编译运行项目了,会看到生成的程序已经带有安全盾,双击运行时会弹出管理员权限确认对话框。

你可能感兴趣的:(codeblocks,uac,cc++,管理员权限,清单文件)