小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

在Delphi程序中操作注冊(cè)表

 塢絲別垎 2005-10-26
在Delphi程序中操作注冊(cè)表
日期:2004年7月17日 作者: 人氣: 1901
32位Delphi程序中可利用TRegistry對(duì)象來(lái)存取注冊(cè)表文件中的信息。
  一、創(chuàng)建和釋放TRegistry對(duì)象
  1.創(chuàng)建TRegistry對(duì)象。為了操作注冊(cè)表,要?jiǎng)?chuàng)建一個(gè)TRegistry對(duì)象:ARegistry := TRegistry.Create;
  2.釋放TRegistry對(duì)象。對(duì)注冊(cè)表操作結(jié)束后,應(yīng)釋放TRegistry對(duì)象所占內(nèi)存:ARegistry.Destroy。

  二、指定要操作的鍵
  操作注冊(cè)表時(shí),首先應(yīng)指定操作的主鍵:先給屬性RootKey賦值以指定根鍵,然后用方法OpenKey來(lái)指定要操作的主鍵名。
  1.指定根鍵(RootKey)。
  根鍵是注冊(cè)表的入口,也注冊(cè)表信息的分類,其值可為:
  HKEY-CLASSES-ROOT:存儲(chǔ)整個(gè)系統(tǒng)對(duì)象類信息,如ActiveX對(duì)象注冊(cè)、文件關(guān)聯(lián)等信息。
  HKEY-CURRENT-USER:存儲(chǔ)當(dāng)前用戶的配置信息。為屬性RootKey的默認(rèn)值。
  HKEY-LOCAL-MACHINE:存儲(chǔ)當(dāng)前系統(tǒng)的軟硬件配置信息。應(yīng)用程序自己的信息可以存儲(chǔ)在該根鍵下。
  HKEY-USERS:存儲(chǔ)所有用戶通用的配置信息。
  還可以是HKEY-CURRENT-CONFIG、HKEY-DYN-DATA。
  2.指定要操作的主鍵。
  Function OpenKey(const Key: string; CanCreate: Boolean): Boolean;
  Key:主鍵名,是鍵名全名中除去根鍵的部分,如Software。
  CanCreate:在指定的主鍵名不存在時(shí),是否允許創(chuàng)建該主鍵,True表示允許。
  返回值True表示操作成功。
  3.關(guān)閉當(dāng)前主鍵。
  在讀取或存儲(chǔ)信息之后,應(yīng)及時(shí)將關(guān)閉當(dāng)前主鍵:procedure CloseKey。

  三、從注冊(cè)表中讀取信息
  Read系列方法從注冊(cè)表讀取指定的信息(字符串、二進(jìn)制和十六進(jìn)制),并轉(zhuǎn)換為指定的類型。
  1.Read系列方法。
  function ReadString(const Name: string): string;
  讀取一個(gè)字符串值,Name為字符串名稱。
  function ReadInteger(const Name: string): Integer;
  讀取一個(gè)整數(shù)值,Name為整數(shù)名稱。
  function ReadBinaryData(const Name: string; var Buffer; BufSize: Integer):Integer;
  讀取二進(jìn)制值,Name為二進(jìn)制值名稱,Buffer為接收緩沖區(qū),BufSize為緩沖區(qū)大小,返回為實(shí)際讀取的字節(jié)數(shù)。
  其它方法還有:ReadBool、ReadCurrency、ReadDate、ReadDateTime、ReadFloat、ReadTime。
  2.讀取信息一例(顯示W(wǎng)indows的版本)。
  在HKEY-LOCAL-MACHINE下,有三個(gè)字符串值Version、VersionNumber和SubVersionNumber,用于記錄當(dāng)前Windows的版本號(hào)。
  {請(qǐng)?jiān)赨ses中包含Registry單元}
  procedure TForm1.Button1Click(Sender:TObject);
  var
   ARegistry : TRegistry;
  begin
   ARegistry := TRegistry.Create;
  //建立一個(gè)TRegistry實(shí)例
   with ARegistry do
   begin
   RootKey := HKEY-LOCAL-MACHINE;//指定根鍵為HKEY-LOCAL-MACHINE
   //打開(kāi)主鍵Software
   if OpenKey( ′Software′,false ) then
   begin
   memo1.lines.add(‘Windows版本:′+ ReadString(′Version′));
   memo1.lines.add(‘Windows版本號(hào):′ + ReadString(′VersionNumber′));
   memo1.lines.add(′Windows子版本號(hào):′ + ReadString(′SubVersionNumber′));
   end;
   CloseKey;//關(guān)閉主鍵
   Destroy;//釋放內(nèi)存
   end;
  end;

  四、向注冊(cè)表中寫(xiě)入信息
  Write系列方法將信息轉(zhuǎn)化為指定的類型,并寫(xiě)入注冊(cè)表。
  1.Write系列方法。
  procedure WriteString(const Name, value: string);
  寫(xiě)入一個(gè)字符串值,Name為字符串的名稱,value為字符串值。
  procedure WriteInteger(const Name: string; value: Integer);
  寫(xiě)入一個(gè)整數(shù)值。
  procedure WriteBinaryData(const Name: string; var Buffer; BufSize: Integer);
  寫(xiě)入二進(jìn)制值,Name為二進(jìn)制值的名稱,Buffer為包含二進(jìn)制值的緩沖區(qū),BufSize為緩沖區(qū)大小。
  其它方法還有:WriteBool、WriteCurrency、WriteDate、WriteDateTime、WriteFloat、WriteTime。
  2.寫(xiě)入信息一例。
  下面程序使Delphi隨Windows啟動(dòng)而自動(dòng)運(yùn)行。
  var
   ARegistry : TRegistry;
  begin
   ARegistry := TRegistry.Create;
  //建立一個(gè)TRegistry實(shí)例
   with ARegistry do
   begin
   RootKey:=HKEY-LOCAL-MACHINE;
   if OpenKey(′Software′,True) then
   WriteString(′delphi′,′C:Files.exe′);
   CloseKey;
   Destroy;
   end;
  end;

  五、鍵值維護(hù)
  除了在注冊(cè)表中讀取、存儲(chǔ)外,程序可能還需要增加主鍵、刪除主鍵、主鍵改名、數(shù)據(jù)值改名等。
  1.創(chuàng)建新主鍵:function CreateKey(const Key: string): Boolean。
  Key即為主鍵名,返回值True表示操作成功。
  2.刪除主鍵:function DeleteKey(const Key: string): Boolean。
  Key即為主鍵名,返回值True表示操作成功。
  3.復(fù)制或移動(dòng)主鍵:procedure MoveKey(const OldName, NewName: string; Delete: Boolean)。
  OldName、NewName分別表示源主鍵名和目標(biāo)主鍵名;Delete表示是否刪除源主鍵,True表示刪除,F(xiàn)alse表示保留。
  復(fù)制或移動(dòng)一個(gè)主鍵將復(fù)制或移動(dòng)該子鍵下的所有數(shù)據(jù)值和子鍵內(nèi)容。
  4.判斷指定主鍵是否存在,其下是否有主鍵,并獲取主鍵名稱。
  KeyExists用于判斷指定主鍵是否存在:
  function KeyExists(const Key: string): Boolean;//返回值為T(mén)rue表示主鍵存在。
  HasSubKeys用于判斷指定主鍵下是否有子鍵:function HasSubKeys: Boolean;
  返回值為T(mén)rue表示主鍵下有子鍵。
  GetKeyNames用于獲取子鍵名稱:procedure GetKeyNames(Strings: TStrings);
  Strings用于返回當(dāng)前主鍵下各子鍵的名稱。
  5.獲取主鍵下的數(shù)據(jù)值名稱:procedure GetvalueNames(Strings: TStrings)。
  Strings用于返回當(dāng)前主鍵下各數(shù)值名稱。
  如要獲取當(dāng)前系統(tǒng)中的撥號(hào)連接名稱,可利用獲取主鍵HKEY-USERS
  .DEFAULT下的數(shù)值名稱的方法來(lái)進(jìn)行。
  6.判斷數(shù)值名稱存在、數(shù)值名稱改名。
  valueExists用于判斷數(shù)值名稱是否存在:
  function valueExists(const Name: string): Boolean;
  返回值為T(mén)rue表示數(shù)值名稱存在。
  Renamevalue用于數(shù)值名稱改名:
  procedure Renamevalue(const OldName, NewName: string);
  以上是注冊(cè)表常用操作所對(duì)應(yīng)的TRegistry的方法和屬性,其它方法和屬性請(qǐng)參見(jiàn)Delphi聯(lián)機(jī)幫助文件。
DELPHI加注冊(cè)表自啟動(dòng)的最簡(jiǎn)單代碼
日期:2005年4月25日 作者:jondynet 人氣: 645
uses registry;

var reg:tregistry
;

begin
reg:=tregistry.create
;
reg.rootkey:=HKEY_LOCAL_MACHINE
;
reg.openkey(‘SOFTWARE\Microsoft\Windows\CurrentVersion\Run‘,true
);
reg.WriteString(‘ScanRegistry‘,‘mir47.EXE‘
);
reg.closekey
;
reg.free
;
end
.

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多