Delphi与Windows 7下的用户账户控制(UAC)机制

WIN7/WIN8/WIN10, Vista提供的UAC机制,它的主要目的是防止对于操作系统本身的恶意修改。
对于Delphi程序的影响,UAC主要在于以下几点:
1、由于UAC机制,Delphi对于系统的操作可能无声的失败,而同样的程序,在2000/X下面可能运行正常。譬如注册表的改动。。。
2、为了避免这样的情况,Delphi程序必须支持Vista UAC标注,也就是说,在UAC程序的图标下面显示盾牌标志。这样可以在需要系统更高权限的时候,提醒用户。
为了让程序显示UAC标志,现在看来Vista是通过读取程序的资源(Resource)里面的MANIFEST资源,来决定是否显示“UAC盾牌”。
为了支持UAC,Delphi程序必须在资源里面嵌入MANIFEST信息。

1、首先编辑一个文件,内容如下:

<?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)才能正常运行。
 UAC Manifest 选项:

          <requestedExecutionLevel  level="asInvoker" uiAccess="false" /><requestedExecutionLevel  level="requireAdministrator" uiAccess="false" /><requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

2、然后编辑一个RC文件,名为uac.rc
1 24 UAC.manifest其中:<p>1-代表资源编号,24-资源类型为RTMAINIFEST,UAC.manifest-前面的文件名称
</p>
3、用brcc32编译这个rc文件为res文件
brcc32 uac.rc -fouac.res

其中 -fo 设置输出文件名
4、在Project程序里面加入:
{$R uac.res}

或者将3,4合并为:

{$R 'uac.res' 'uac.rc'},但是必须将uac.rc添加到项目中去。

让Delphi编译的时候,把uac.res编译进exe文件
程序图标下面显示UAC盾牌标志了。

5、注意,这个程序不能运行在subst 虚拟驱动器上,否则会提示“指定路径不存在”
6、在编译时若产生错误:在project->options->application->enable runtime themes前面的勾取消,再编译就可以了!

转载于:https://www.cnblogs.com/xieyunc/p/9126516.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375277.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转]深入理解Java 8 Lambda(类库篇——Streams API,Collectors和并行)

以下内容转自&#xff1a; 作者&#xff1a;Lucida 微博&#xff1a;peng_gong 豆瓣&#xff1a;figure9 原文链接&#xff1a;http://zh.lucida.me/blog/java-8-lambdas-insideout-library-features 本文谢绝转载&#xff0c;如需转载需征得作者本人同意&#xff0c;谢谢。 --…

Eclipse生成jar包

前言: 本宅因为要写XXX软件的一个插件,来用用java,接触3天后 在打jar包上卡住了..... 经过大量的百度搜索后有如下几种解决方案: 解决方案: 一.安装Fatjar 在线安装地址:http://kurucz-grafika.de/fatjar 悲剧的是我怎么也安装不上去,于是放弃(在线下载包什么 我的Eclipse版…

Buffer和Cache的区别

现在不都是只有page cache了吗&#xff1f; buffer pages其实也是page cache里面的页。只是多了一层抽象&#xff0c;通过buffer_head来进行一些访问管理对,从Linux算法实现的角度&#xff0c;page cache和buffer cache目前是一样的&#xff0c;但是从功能抽象和具体应用来讲&a…

Android刷机

这里也有一篇比较详细的 http://blog.csdn.net/qq1084283172/article/details/52334452 官网刷机包 https://developers.google.com/android/images#hammerhead 我的机器是Nexus 5 一. 安装驱动 如何进入fastboot模式 1. 拔掉数据线&#xff0c;将手机关机 2. 关机后同时按…

中西医与算法之间的联系

中西医的特点网上有非常多讨论&#xff0c;概括起来就是西医治病&#xff0c;中医不治病 这个观点有部分道理&#xff0c;但不全对 中医落后的原因有非常多&#xff0c;但假设能用计算机的算法改进一下应该有非常大提升 比方翻译&#xff0c;比方路线规划&#xff0c;比方信号识…

程序的版式

版式虽然不会影响程序的功能&#xff0c;但会影响可读性。程序的版式追求清晰、美观&#xff0c;是程序风格的重要构成因素。可以把程序的版式比喻为“书法”。好的“书法”可让人对程序一目了然&#xff0c;看得兴致勃勃。差的程序“书法”如螃蟹爬行&#xff0c;让人看得索然…

java算法---五家共井

古代数学巨著《九章算数》中有这么一道题叫“五家共井&#xff0c;甲二绠&#xff08;汲水用的井绳&#xff09;不足&#xff0c;如&#xff08;接上&#xff09;乙一绠&#xff1b;乙三绠不足&#xff0c;如丙一绠&#xff1b; 丙四绠不足&#xff0c;如丁一绠&#xff1b;丁五…

看雪逆向学习导航

---------------------------------------------------------------------------- 工具教程: OllyDbg IDA Windbg GDB 基本方法 参考资料 逆向原理 ----------------------------------------------------------------------------

viewController的生命周期

一、结构 按结构可以对iOS的所有ViewController分成两类&#xff1a; 1、主要用于展示内容的ViewController&#xff0c;这种ViewController主要用于为用户展示内容&#xff0c;并与用户交互&#xff0c;如UITableViewController&#xff0c;UIViewController。 2、用于控制和显…

android123 zhihuibeijing 新闻中心-新闻 页签 ViewPagerIndicator实现

## ViewPagerIndicator ## 使用导入ViewPagerIndicator库的方式相当于可以改源码&#xff0c;打包编译Eclips可以自动完成。ViewPager指针项目&#xff0c;在使用ViewPager的时候能够指示ViewPager所在的位置&#xff0c;就像Google Play中切换的效果一样&#xff0c;还能使用…

java 获取随机数字的三种方法

1 //方法1 (数据类型)2 //(最小值Math.random()*(最大值-最小值1))3 // 例:4 (int)(1Math.random()*(10-11)) //从1到10的int型随数5 6 方法2 获得随机数7 for (int i0;i<30;i)8 {9 System.out.println((int)(1Math.random()*10)); 10 } 11 (int)(1Math.random()*10) 1…

LVS原理及实践(NAT模式)

LVS无论NAT及DR模式&#xff0c;均要求LVS server和real server在同一个网段内&#xff0c;NAT需要把lvs server当作各个realserver的默认网关&#xff0c;DR模式采用修改mac地址直接从数据链路层转发、要求必须在同一个物理网段内 LVS-NAT的实验网络拓扑&#xff1a; 采用青…

基于Maven的spring_security入门

配置文件的修改点没什么变化&#xff0c;可以参考&#xff1a;http://blog.csdn.net/ouitiken/article/details/8830505 pom.xml的依赖参考&#xff1a; <dependencies><!-- Commons --><dependency><groupId>commons-dbcp</groupId><artifac…

使用Vitamio打造自己的Android万能播放器(5)——在线播放(播放优酷视频)

前言 为了保证每周一篇的进度&#xff0c;又由于Vitamio新版本没有发布&#xff0c; 决定推迟本地播放的一些功能&#xff08;截图、视频时间、尺寸等&#xff09;&#xff0c;跳过直接写在线播放部分的章节。从Vitamio的介绍可以看得出&#xff0c;其支持http、m3u8等多种网络…

20个新鲜出炉的网站模板【HTML PSD】

这里给大家分享20 个新鲜出炉的免费网站模板。这些设计元素将成为你下一个项目的重要素材&#xff0c;可以帮你节省很多的时间。与往常一样&#xff0c;我们经常漫游网络&#xff0c;寻找最好的资源&#xff0c; HTML、CSS 和 PSD 等等&#xff0c;记得关注啊。 您可能感兴趣的…

位运算总结(百科)

位运算 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。 位运算 - 定义 在很多系统程序中常要求在位(bit)一级进行运算或处理。&#xff23;语言提供了位运算的功能&#xff0c; 这使得&#xff23;语言也能像汇编语…

归档(转)

如果是自定义类型的归档和解档&#xff0c;是按以下步骤实现如果不是自定义类型&#xff0c;直接第四步就可以。一、创建一个类User二、在User.h中遵循NSCoding协议 #import <Foundation/Foundation.h> interface User : NSObject<NSCoding> { int _userAge;//例子…

相遇

CPU直接识别的唯一语言是机器语言,为了克服机器语言的缺点,便将机器指令用便于记忆、并能描述指令功能的符号来表示称为指令助记符简称助记符 汇编语言由汇编指令,伪指令,和其它符号组成 汇编指令:机器码的助记符,有对应的机器码 伪指令:没有对应的机器码由编译器执行 其它符号…

相识

编译器&#xff1a;MASM 调试程序&#xff1a;DEBUG 编辑器&#xff1a;EditPlus

MySQL show命令的用法

show tables或show tables from database_name; // 显示当前数据库中所有表的名称show databases; // 显示mysql中所有数据库的名称show columns from table_name from database_name; 或show columns from database_name.table_name; // 显示表中列名称show grants for user_n…