程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi支持Vista的UAC機制

Delphi支持Vista的UAC機制

編輯:Delphi

Vista提供的UAC機制,是Vista的新增功能之一。它的主要目的是防止對於操作系統本身的惡意修改。如果想對於Vista的系統設置進行改動,必須通過UAC的驗證才能夠進行。通過這樣的手段,大大提供了系統的安全性。

關於UAC的利弊,網絡上的說法褒貶不一,在這裡就不具體討論了。

對於Delphi程序的影響,UAC主要在於以下幾點:

1、由於UAC機制,Delphi對於系統的操作可能無聲的失敗,而同樣的程序,在2000/X下面可能運行正常。譬如注冊表的改動。。。

2、為了避免這樣的情況,Delphi程序必須支持Vista UAC標注,也就是說,在UAC程序的圖標下面顯示盾牌標志。這樣可以在需要系統更高權限的時候,提醒用戶。

為了讓程序顯示UAC標志,現在看來Vista是通過讀取程序的資源(Resource)裡面的MANIFEST資源,來決定是否顯示“UAC盾牌”。

為了支持Vista,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)才能正常運行。

2、然後編輯一個RC文件,名為uac.rc

1 24 UAC.manifest

其中:

1-代表資源編號

24-資源類型為RTMAINIFEST

UAC.manifest-前面的文件名稱

3、用brcc32編譯這個rc文件為res文件

brcc32 uac.rc -fouac.res  //注:brcc32.exe在DelphiX\Bin目錄中

4、在程序裡面加入

{$R uac.res}

讓Delphi編譯的時候,把uac.res編譯進exe文件

5、把文件放到vista裡面運行,就會看程序圖標下面顯示UAC盾牌標志了

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved