Delphi 编译的程序在win10中怎样默认以管理员身份运行
由于Vista以后win中加入的UAC安全机制,采用Delphi开发的程序如果不右键点击“以管理员身份运行”,则会报错。 在XE2以上的Delphi版本处理这个问题已经非常简单了。 右建点击工程,选择“Options”->“Applicaion”下,将Runtime themes项设置为“Use Custom manifest”,点击下方按钮,选择相应的Manifest文件即可。 需要注意的是:Debug和Release模式不同,要进行同样设置 至于Manifest文件,也就是一个XML文档,原文如下:
<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>
XE2以前的版本解决办法,将上面的xml内容保存为UAC.manifest 然后编辑一个RC文件,名称为uac.rc 如下所示:
1 24 UAC.manifest
其中:
1-代表资源编号
24-资源类型为RTMAINIFEST
UAC.manifest-前面的文件名称
用brcc32编译这个rc文件为res文件,如下所示:
brcc32.exe UAC.Rc
在程序dpr文件里面加入
{$R UAC.RES}
让Delphi编译的时候,把uac.res编译进exe文件
把文件放到vista或win7或WIN10下运行,就会看程序图标下面显示UAC盾牌标志了。以后再打开程序之前一些需要以右键管理员运行才能正常工作的都可以正常了。比如C盘的写入权限
注:XE2及以上的开发环境中用上述资源文件引入的方式经测试是无效的。必须要用如下图的自定义Manifest方法才能起作用,负作用:仅用上面的manifest文件内容会带来程序xp风格皮肤丢失
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751810.html