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.pswp.cn/news/375277.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375277.shtml
英文地址,請注明出處:http://en.pswp.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…