本文主要是介绍让Delphi XE2程序支持UAC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在win7下,开发的程序有的时候莫名其妙就不能正常工作了,其实都是因为权限不够,要想能够正常运行,就需要获得管理员权限,这就需要处理UAC。具体方法如下:
一,制作“uac.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" uiAccess="false">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*">
</assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
二,设置XE2工程属性。Project->Options->Application->Runtime Themes->Use custom
manifest,随后选择"uac.manifest"文件,点”OK“按钮,随后编译程序,这样我们的程序就在运行时候会提示用户提升权限,在运行时的对话框中选择”是“,我们的程序就拥有了管理员权限,有足够权限做我们想做的事情了。
UAC很有意思的地方:
1,如果一个拥有UAC权限的程序运行后,这个程序再执行需要UAC权限的程序,也不会再出现UAC提示了。
2,如果一个拥有UAC权限的程序运行后,把一个需要UAC权限的程序注册成NT Service程序,这个NT Service程序运行不在出现UAC提示。
参考:
http://hi.baidu.com/mestars/item/bef02c1653b3426e70d5e861
这篇关于让Delphi XE2程序支持UAC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!