Delphi编写的程序在Win7以上提升权限(以管理员身份运行)

Posted YanJinrong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi编写的程序在Win7以上提升权限(以管理员身份运行)相关的知识,希望对你有一定的参考价值。

Delphi程序要实现在win7下以管理员身份运行,必须潜入一个res文件,操作步骤如下:

1) 首先编辑一个文本文件,命名为*.manifest (例如uac.manifest)

 
<?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>


保存为UAC.manifest,这里文件是随意的。特别注意红色的“requireAdministrator”,这个表示程序需要管理员(Administrator)才能正常运行。

2)然后新建一个文本文件,命名为*.rc(例如为uac.rc),内容如下所示:


1 24 UAC.manifest


其中:
1-代表资源编号
24-资源类型为RTMAINIFEST
UAC.manifest-前面的文件名称

3)将rc文件加入到项目中

    将rc文件增加到项目中;(在项目文件上点击右键,然后选择add,加入rc文件)

4)build项目,生成文件在win7下,就会看程序图标下面显示UAC盾牌标志了;

    此时运行程序,就会出现询问对话框了。

以上是关于Delphi编写的程序在Win7以上提升权限(以管理员身份运行)的主要内容,如果未能解决你的问题,请参考以下文章

以提升的权限运行时如何正确检测网络驱动器

判断当前进程是否以管理员权限运行(AllocateAndInitializeSid后,用CheckTokenMembership与AdministratorsGroup进行比较,和Delphi的那个例

程序的开机关机重启,开机启动,休眠功能delphi实现(使用AdjustTokenPrivileges提升权限)

delphi 提升openprocess权限

未提升的程序启动提升的更新程序,更新程序应等待程序完成

Delphi 以不同的用户身份运行