Delphi操作注册表TRegistry类

在应用程序中,经常需要对注册表进行操作,如将程序名称、安装路径等等信息保存到注册表中。Delphi对相应API函数做了进一步封装,使操作注册表更加简单。

一、TRegistry类介绍

1、Delphi提供了TRegistry类,它直接继承自TObject类。

主要属性有:RootKey等;

主要方法有:

Create,

CreateKey(Key),

OpenKey(Key,CanCreate),

WriteString(Name,Value),

ReadString(Name),

CloseKey,

Free等,

下面对它们进行简单介绍。

(1)RootKey属性

指定当前操作的注册表主键,共有HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USERS、HKEY_CURRENT_CONFIG五种取值,默认值为HKEY_CURRENT_USER。

(2)CreateKey方法

    函数声明为function CreateKey(const Key:String):Boolean;,用于在注册表中新建项,项的名称为参数Key的值。

(3)OpenKey方法

    函数声明为function OpenKey(const Key:String; CanCreate: Boolean):Boolean;,其中参数Key指定要打开的注册表的项,参数CanCreate指明当要打开的项不存在时是否创建,默认值为False;函数返回值为布尔类型,如果打开成功返回True,否则返回False。

(4)WriteString方法

    过程声明为procedure WriteString(constName, Value: String);,其中参数Name指明要写入的注册表的字符串的名称,参数Value为要写入的字符串的值。如果该字符串不存在则写入,否则覆盖原来的取值。

(5)ReadString方法

函数声明为function ReadString(const Name:String):String;,其中参数Name为要读取的字符串的名称,函数返回值为要读取的字符串的值,是字符串类型。如果该字符串在注册表中不存在,返回值为空字符串。

(6)CloseKey方法

关闭注册表。

(7)Free方法

    释放变量所占内存。

二、实例

1、首先在单元里引入Registry库;

2、其次声明一个TRegistry类变量,如:

  xReg  : TRegistry ;

声明注册表键值常量

const
  RegPathCbbAddTxt= '\Software\KutoolsForExcel\DlgInfo\FrmAddText\Cbb_AddText';

3、接下来创建:

(1)将信息写入注册表

在窗体隐藏方法里写入以下代码:

xReg :=TRegistry.Create ;  //创建实例
xReg.RootKey:= HKEY_CURRENT_USER ;  //指定需要操作的注册表主键
ifxReg.OpenKey(RegPath ,True) then  //如果打开成功则进行以下操作
       begin
         xReg.WriteString('FormTop',IntToStr(Self.Top));//将信息写入注册表
         xReg.WriteString('FormLeft',IntToStr(Self.Left));
       end;

xReg.CloseKey;  //关闭注册表

(2)从注册表中读取信息

在窗体显示方法里写入以下代码:

  

xReg :=TRegistry.Create ;   //创建实例
   xReg.RootKey:= HKEY_CURRENT_USER ;   //指定需要操作的注册表主键
   ifxReg.OpenKey(RegPath,False) then //当窗体首次创建的时候,注册表中还没有写入
     begin
       Self.Top:= StrToInt(xReg.ReadString('FormTop'));  //将信息写入注册表
       Self.Left := StrToInt(xReg.ReadString('FormLeft'))
     end;
   xReg.CloseKey ;  //关闭注册表
   xReg.Free ;   //释放变量所占内存