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 ; //释放变量所占内存