日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)Delphi → delphi 中對注冊表的操作

      delphi 中對注冊表的操作

      前往專題相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2012/8/22 11:14:56字體大。A-A+

      作者:西西點擊:19次評論:0次標(biāo)簽: Delphi

      Delphi 中對windows注冊表進(jìn)行查找,讀寫等操作

      DelPhi中對注冊表的讀寫過程簡介
      在DelPhi中為程序員提供了一個Tregistry類,它提供了眾多豐富的方法來完成對注冊表的修改。

      32位Delphi程序中可利用TRegistry對象來存取注冊表文件中的信息。 
        一、創(chuàng)建和釋放TRegistry對象 


        1.創(chuàng)建TRegistry對象。為了操作注冊表,要創(chuàng)建一個TRegistry對象:ARegistry := TRegistry.Create; 

        2.釋放TRegistry對象。對注冊表操作結(jié)束后,應(yīng)釋放TRegistry對象所占內(nèi)存:ARegistry.Destroy。 

        二、指定要操作的鍵 

        操作注冊表時,首先應(yīng)指定操作的主鍵:先給屬性RootKey賦值以指定根鍵,然后用方法OpenKey來指定要操作的主鍵名。 

        1.指定根鍵(RootKey)。 
        根鍵是注冊表的入口,也注冊表信息的分類,其值可為: 
        HKEY—CLASSES—ROOT:存儲整個系統(tǒng)對象類信息,如ActiveX對象注冊、文件關(guān)聯(lián)等信息。 
        HKEY—CURRENT—USER:存儲當(dāng)前用戶的配置信息。為屬性RootKey的默認(rèn)值。 
        HKEY—LOCAL—MACHINE:存儲當(dāng)前系統(tǒng)的軟硬件配置信息。應(yīng)用程序自己的信息可以存儲在該根鍵下。
       HKEY—USERS:存儲所有用戶通用的配置信息。 
        還可以是HKEY—CURRENT—CONFIG、HKEY—DYN—DATA。 

        2.指定要操作的主鍵。 
        Function OpenKey(const Key: string; CanCreate: Boolean): Boolean; 
        Key:主鍵名,是鍵名全名中除去根鍵的部分,如Software\Borland\Delphi。 
        CanCreate:在指定的主鍵名不存在時,是否允許創(chuàng)建該主鍵,True表示允許。 
        返回值True表示操作成功。 

        3.關(guān)閉當(dāng)前主鍵。 
        在讀取或存儲信息之后,應(yīng)及時將關(guān)閉當(dāng)前主鍵:procedure CloseKey。 

        三、從注冊表中讀取信息 
        Read系列方法從注冊表讀取指定的信息(字符串、二進(jìn)制和十六進(jìn)制),并轉(zhuǎn)換為指定的類型。 

        1.Read系列方法。 
        function ReadString(const Name: string): string; 
        讀取一個字符串值,Name為字符串名稱。 
        function ReadInteger(const Name: string): Integer; 
        讀取一個整數(shù)值,Name為整數(shù)名稱。 
        function ReadBinaryData(const Name: string; var Buffer; BufSize: Integer):Integer; 
        讀取二進(jìn)制值,Name為二進(jìn)制值名稱,Buffer為接收緩沖區(qū),BufSize為緩沖區(qū)大小,返回為實際讀取的字節(jié)數(shù)。 
        其它方法還有:ReadBool、ReadCurrency、ReadDate、ReadDateTime、ReadFloat、ReadTime。 

        2.讀取信息一例(顯示W(wǎng)indows的版本)。 
       在HKEY—LOCAL—MACHINE\Software\Microsoft\Windows\CurrentVersion下,有三個字符串值Version、VersionNumber和SubVersionNumber,用于記錄當(dāng)前Windows的版本號。 

        {請在Uses中包含Registry單元} 
        procedure TForm1.Button1Click(Sender:TObject); 
        var 
         ARegistry : TRegistry; 
        begin 
         ARegistry := TRegistry.Create; 
        //建立一個TRegistry實例 
         with ARegistry do 
          begin 
         RootKey := HKEY—LOCAL—MACHINE;//指定根鍵為HKEY—LOCAL—MACHINE 
         //打開主鍵Software\Microsoft\Windows\CurrentVersion 
         if OpenKey( ′Software\Microsoft\Windows\CurrentVersion′,false ) then 
         begin 
         memo1.lines.add('Windows版本:′+ ReadString(′Version′)); 
         memo1.lines.add('Windows版本號:′+ ReadString(′VersionNumber′)); 
         memo1.lines.add(′Windows子版本號:′+ ReadString(′SubVersionNumber′)); 
         end; 
         CloseKey;//關(guān)閉主鍵 
         Destroy;//釋放內(nèi)存 
         end; 
        end; 

        四、向注冊表中寫入信息 
        Write系列方法將信息轉(zhuǎn)化為指定的類型,并寫入注冊表。 

        1.Write系列方法。 
        procedure WriteString(const Name, Value: string); 
        寫入一個字符串值,Name為字符串的名稱,Value為字符串值。 
        procedure WriteInteger(const Name: string; Value: Integer); 
        寫入一個整數(shù)值。 
        procedure WriteBinaryData(const Name: string; var Buffer; BufSize: Integer); 
        寫入二進(jìn)制值,Name為二進(jìn)制值的名稱,Buffer為包含二進(jìn)制值的緩沖區(qū),BufSize為緩沖區(qū)大小。 
        其它方法還有:WriteBool、WriteCurrency、WriteDate、WriteDateTime、WriteFloat、WriteTime。 

        2.寫入信息一例。 
        下面程序使Delphi隨Windows啟動而自動運(yùn)行。 

        var 
         ARegistry : TRegistry; 
        begin 
         ARegistry := TRegistry.Create; 
        //建立一個TRegistry實例 
         with ARegistry do 
         begin 
         RootKey:=HKEY—LOCAL—MACHINE; 
          if OpenKey(′Software\Microsoft\Windows\CurrentVersion\Run′,True) then 
         WriteString(′delphi′,′C:\Program Files\borland\delphi3\bin\delphi32.exe′); 
         CloseKey; 
         Destroy; 
         end; 
        end; 

        五、鍵值維護(hù) 
        除了在注冊表中讀取、存儲外,程序可能還需要增加主鍵、刪除主鍵、主鍵改名、數(shù)據(jù)值改名等。 

        1.創(chuàng)建新主鍵:function CreateKey(const Key: string): Boolean。 
        Key即為主鍵名,返回值True表示操作成功。 

        2.刪除主鍵:function DeleteKey(const Key: string): Boolean。 
        Key即為主鍵名,返回值True表示操作成功。 

        3.復(fù)制或移動主鍵:procedure MoveKey(const OldName, NewName: string; Delete: Boolean)。 
        OldName、NewName分別表示源主鍵名和目標(biāo)主鍵名;Delete表示是否刪除源主鍵,True表示刪除,F(xiàn)alse表示保留。 
        復(fù)制或移動一個主鍵將復(fù)制或移動該子鍵下的所有數(shù)據(jù)值和子鍵內(nèi)容。 

        4.判斷指定主鍵是否存在,其下是否有主鍵,并獲取主鍵名稱。 
        KeyExists用于判斷指定主鍵是否存在: 
        function KeyExists(const Key: string): Boolean;//返回值為True表示主鍵存在。 
        HasSubKeys用于判斷指定主鍵下是否有子鍵:function HasSubKeys: Boolean; 
        返回值為True表示主鍵下有子鍵。 
       GetKeyNames用于獲取子鍵名稱:procedure GetKeyNames(Strings: TStrings); 
       Strings用于返回當(dāng)前主鍵下各子鍵的名稱。 

        5.獲取主鍵下的數(shù)據(jù)值名稱:procedure GetValueNames(Strings: TStrings)。 
        Strings用于返回當(dāng)前主鍵下各數(shù)值名稱。 
        如要獲取當(dāng)前系統(tǒng)中的撥號連接名稱,可利用獲取主鍵HKEY—USERS \.DEFAULT\RemoteAccess\Addresses下的數(shù)值名稱的方法來進(jìn)行。 

        6.判斷數(shù)值名稱存在、數(shù)值名稱改名。 
        ValueExists用于判斷數(shù)值名稱是否存在: 
        function ValueExists(const Name: string): Boolean; 
        返回值為True表示數(shù)值名稱存在。 
        RenameValue用于數(shù)值名稱改名: 
        procedure RenameValue(const OldName, NewName: string); 

       以上是注冊表常用操作所對應(yīng)的TRegistry的方法和屬性,其它方法和屬性請參見Delphi聯(lián)機(jī)幫助文件。 
      以上程序在PWIN 98+Delphi 3.0下調(diào)試通過。

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)