g(′SubVersionNumber′));
end;
CloseKey;//关闭主键
Destroy;//释放内存
end;
end;四、向注册表中写入信息
Write系列方法将信息转化为指定的类型,并写入注册表。
1.Write系列方法。
procedure WriteString(const Name, value: string);
写入一个字符串值,Name为字符串的名称,value为字符串值。
procedure WriteInteger(const Name: string; value: Integer);
写入一个整数值。
procedure WriteBinaryData(const Name: string; var Buffer; BufSize: Integer);
写入二进制值,Name为二进制值的名称,Buffer为包含二进制值的缓冲区,BufSize为缓冲区大小。
其它方法还有:WriteBool、WriteCurrency、WriteDate、WriteDateTime、WriteFloat、WriteTime。
2.写入信息一例。
下面程序使Delphi随Windows启动而自动运行。
var
ARegistry : TRegistry;
begin
ARegistry := TRegistry.Create;
//建立一个TRegistry实例
with ARegistry do
begin
RootKey:=HKEY-LOCAL-MACHINE;
if OpenKey(′Software′,True) then
WriteString(′delphi′,′C:Files.exe′);
CloseKey;
Destroy;
end;
end;五、键值维护
除了在注册表中读取、存储外,
程序可能还需要增加主键、删除主键、主键改名、数据值改名等。
1.创建新主键:function CreateKey(const Key: string): Boolean。
Key即为主键名,返回值True表示操作成功。
2.删除主键:function DeleteKey(const Key: string): Boolean。
Key即为主键名,返回值True表示操作成功。
3.复制或移动主键:procedure MoveKey(const OldName, NewName: string; Delete: Boolean)。
OldName、NewName分别表示
源主键名和目标主键名;Delete表示是否删除源主键,True表示删除,False表示保留。
复制或移动一个主键将复制或移动该子键下的所有数据值和子键内容。
4.判断指定主键是否存在,其下是否有主键,并获取主键名称。
KeyExists用于判断指定主键是否存在:
function KeyExists(const Key: string): Boolean;//返回值为True表示主键存在。
HasSubKeys用于判断指定主键下是否有子键:function HasSubKeys: Boolean;
返回值为True表示主键下有子键。
GetKeyNames用于获取子键名称:procedure GetKeyNames(Strings: TStrings);
Strings用于返回当前主键下各子键的名称。
5.获取主键下的数据值名称:procedure GetvalueNames(Strings: TStrings)。
Strings用于返回当前主键下各数值名称。
如要获取当前系统中的拨号连接名称,可利用获取主键HKEY-USERS
.DEFAULT下的数值名称的方法来进行。
6.判断数值名称存在、数值名称改名。
valueExists用于判断数值名称是否存在:
function valueExists(const Name: string): Boolean;
返回值为True表示数值名称存在。
Renamevalue用于数值名称改名:
procedure Renamevalue(const OldName, NewName: string);
以上是注册表
常用操作所对应的TRegistry的方法和属性,其它方法和属性请参见Delphi联机帮助文件。★★★★★★★★★★文献二★★★★★★★★★★在应用程序中,经常需要对注册表进行各种操作,如将程序名称、安装路径等信息保存到
注册表中。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、CreateKe