让Delphi XE2程序支持UAC
2024-10-19 04:30:20
在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
http://blog.csdn.net/sunylat/article/details/9093379
最新文章
- 【Web动画】SVG 实现复杂线条动画
- Process类
- How to select Multiple images from UIImagePickerController [duplicate]
- 什么时候加上android.intent.category.DEFAULT
- jquery datatable
- 让scrollView、tableView滚动到底部
- :first与:first-child的区别
- Java 14 类型信息
- CPU GPU天梯图
- qregularexpression和qregexp的区别
- UI2_QQ折叠-UITableViewController
- 查看Linux版本系统信息方法汇总
- 机器学习的数学基础(1)--Dirichlet分布
- 【译】UI设计基础(UI Design Basics)--启动与停止(Starting and Stopping)(五)
- Linux: 信息查看
- 关于No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)使用百度地图的解决办法
- [SinGuLaRiTy] SplayTree 伸展树
- JavaScript 数组最大值
- 【Java学习笔记之二十】final关键字在Java继承中的用法小结
- LNMP环境并发优化
热门文章
- 更新整理本人全部博文中提供的代码与工具(Java,2014.09)
- Android Bluetooth开发
- Python笔记之基本的语法
- iOS 用GDataXMLNode创建和解析XML
- django目录下的各文件
- two sets of Qt binaries into the same process的解决办法
- 基于visual Studio2013解决算法导论之001插入排序
- UVALive 6931 Can&#39;t stop playing (Regionals 2014 >;>; Europe - Central)
- shapefile 编码错误问题解决 Wrong codepage of shapefile Warning 1: One or several characters couldn&#39;t be converted correctly from UTF-8 to ISO-8859-1.
- Android-onInterceptTouchEvent()和onTouchEvent()总结