======================================================
注:本文源代码点此下载
======================================================
在应用程序中,经常需要对注册表进行各种操作,如将程序名称、安装路径等信息保存到注册表中。delphi对相应api函数做了进一步封装,使得在应用程序中操作注册表更加简单。
1、原理
delphi提供了tregistry类,它直接继承自tobject类,主要属性有:rootkey等,主要方法有:create,createkey(key),
openkey(key,cancreate),writestring(name,value),readstring(name),closekey,free等,下面对它们进行简单介绍。
1、1、rootkey属性
指定当前操作的注册表主键,共有hkey_classes_root、hkey_current_user、hkey_local_machine、hkey_users、hkey_current_config五种取值,默认值为hkey_current_user。
1、2、createkey方法
函数声明为function createkey(const key: string):boolean;,用于在注册表中新建项,项的名称为参数key的值。
1、3、openkey方法
函数声明为function openkey(const key: string; cancreate: boolean):boolean;,其中参数key指定要打开的注册表的项,参数cancreate指明当要打开的项不存在时是否创建,默认值为false;函数返回值为布尔类型,如果打开成功返回true,否则返回false。
1、4、writestring方法
过程声明为procedure writestring(const name, value: string);,其中参数name指明要写入的注册表的字符串的名称,参数value为要写入的字符串的值。如果该字符串不存在则写入,否则覆盖原来的取值。
1、5、readstring方法
函数声明为function readstring(const name: string):string;,其中参数name为要读取的字符串的名称,函数返回值为要读取的字符串的值,是字符串类型。如果该字符串在注册表中不存在,返回值为空字符串。
2、实例
下面分别为将信息写入注册表和从注册表中读取信息的例子。
2、1、将信息写入注册表
相应代码如下:
1 var
2
3 reg:tregistry;//声明一个tregistry类变量
4
5 ...
6
7begin
8
9 reg:=tregistry.create;//创建实例
10
11 reg.rootkey:=hkey_current_user;//指定需要操作的注册表的主键
12
13if reg.openkey('\software\delphi使用技巧',true) then//如果打开成功则进行以下操作
14
15 begin
16
17 reg.writestring('文章名称','在delphi中轻松操作注册表');//将需要保存的信息写入注册表
18
19 reg.closekey;//关闭注册表
20
21 end;
22
23 reg.free;//释放变量所占内存
24
25 ...
26
27 end;
2、2、从注册表中读取信息
相应代码如下:
1 var
2
3 reg:tregistry;//声明一个tregistry类变量
4
5 s:string;//声明一个字符串变量用来存放要读取的信息
6
7 ...
8
9 begin
10
11 reg:=tregistry.create;//创建实例
12
13 reg.rootkey:=hkey_current_user;//指定需要操作的注册表的主键
14
15 if reg.openkey('\software\delphi使用技巧',true) then//如果打开成功则进行以下操作
16
17 begin
18
19 s:=reg.readstring('文章名称');//从注册表中读取对应字符串的值
20
21 //如果该字符串不存在则返回值为空字符串
22
23 reg.closekey;//关闭注册表
24
25 end;
26
27 reg.free;//释放变量所占内存
28
29 ...
30
31 end;