博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi在Vasta/win 7下通过UAC控制
阅读量:6950 次
发布时间:2019-06-27

本文共 1086 字,大约阅读时间需要 3 分钟。

  在Windows编程时,为了兼容Win7与XP,许多需要底层权限的程序需要通过UAC验证,这是微软出的一个很恶心的东西……还不如Ubuntu那种Root机制呢……但是有困难我们就要克服~
现在有一种方式可以变相的绕过UAC控制。其实UAC控制有一点很弱智的是,当你的程序名字中包含Installation、Setup等词时,UAC认为你是安装程序,会默认进行UAC提示,提示用户给此程序提高权限。这对于安装包可以简单解决,但是如果我们的主程序也需要高权限的话,我们需要一个manifest文件来告诉UAC:我需要一个较高的权限,UAC也会提示用户提权。具体操作如下,但是此方法有个不能解决的问题是UAC会提示次软件未经微软认证,执行可能会影响安全。解决方法只有一个,那就是购买微软的软件认证……坑爹啊!

  1.建立 res 文件

建立一个文本文件,名字可以自己起,我这里叫:UAC.manifest,内容:

01
02
03
04
05
06
07
08
09
10
11
<?
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
>
<!--这是主要的一句,申请Admin权限,等同于右键管理员打开。-->
<
requestedExecutionLevel
level
=
"requireAdministrator"
/>
</
requestedPrivileges
>
</
security
>
</
trustInfo
>
</
assembly
>

建立文本文件,名为 UAC.rc,内容:

1 24 UAC.manifest

编译成 uac.res 文件,运行:brcc32 uac.rc -fouac.res

  2.在代码中引入

打开项目文件,加入

{$R uac.res}

  3.编译程序

这时程序就支持 VISTA 和WIN7的UAC了,在运行的时候,会弹出 WINDOWS 的提示框,询问用户是否允许以管理员身份运行。

转载于:https://www.cnblogs.com/qingsong/p/3507135.html

你可能感兴趣的文章
SpriteBuilder复杂CCB在App场景加载时报错排查
查看>>
文章用手,产品用心
查看>>
Reveal App试用时间破解
查看>>
线性空间(向量空间)
查看>>
多媒体之录音
查看>>
何为程序员思维
查看>>
【导入导出】compress 值为y对导入对象所占空间的影响
查看>>
mysql 分区类型详解
查看>>
ORACLE同义词总结
查看>>
iOS 设备类型和版本判断
查看>>
ios字体设置
查看>>
【SICP练习】51 练习2.19
查看>>
solveCrossprod求 X'X的逆, ( X' == t(X), 即X的行列变换矩阵 )
查看>>
PostgreSQL column cryptographic use pgcrypto extension and optional openssl lib
查看>>
通过支付宝服务中断事件看系统可靠性和YunOS的可靠性
查看>>
【SICP归纳】3 层次性数据和符号数据
查看>>
创业思维 - LeanCloud的故事
查看>>
【SICP练习】136 练习3.67
查看>>
客户端webview持有的页面缓存,不会立即释放的问题解决
查看>>
oVirt VM (CentOS) template & clone
查看>>