在Delphi程序中操作注册表

时间:2010-02-22 15:38:40  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:操作结束后,应释放TRegistry对象所占内存:ARegistry.Destroy。  二、指定要操作的键  操作注册表时,首先应指定操作的主键:先给属性RootKey赋值以指定根键,然后用方法OpenKey来指定要操作的主键名。  1.指定根键(RootKey)。  根键是注册表的入口,也注册表信息的分类,其值可为:  HKEY-CLASSES-ROOT:存储整个系统对象类信息,如Act...
  正文:32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息。
  一、创建和释放TRegistry对象
  1.创建TRegistry对象。为了操作注册表,要创建一个TRegistry对象:ARegistry := TRegistry.Create;
  2.释放TRegistry对象。对注册表操作结束后,应释放TRegistry对象所占内存:ARegistry.Destroy。

  二、指定要操作的键
  操作注册表时,首先应指定操作的主键:先给属性RootKey赋值以指定根键,然后用方法OpenKey来指定要操作的主键名。
  1.指定根键(RootKey)。
  根键是注册表的入口,也注册表信息的分类,其值可为:
  HKEY-CLASSES-ROOT:存储整个系统对象类信息,如ActiveX对象注册、文件关联等信息。
  HKEY-CURRENT-USER:存储当前用户的配置信息。为属性RootKey的默认值。
  HKEY-LOCAL-MACHINE:存储当前系统的软硬件配置信息。应用程序自己的信息可以存储在该根键下。
  HKEY-USERS:存储所有用户通用的配置信息。
  还可以是HKEY-CURRENT-CONFIG、HKEY-DYN-DATA。
  2.指定要操作的主键。
  Function OpenKey(const Key: string; CanCreate: Boolean): Boolean;
  Key:主键名,是键名全名中除去根键的部分,如Software。
  CanCreate:在指定的主键名不存在时,是否允许创建该主键,True表示允许。
  返回值True表示操作成功。
  3.关闭当前主键。
  在读取或存储信息之后,应及时将关闭当前主键:procedure CloseKey。

  三、从注册表中读取信息
  Read系列方法从注册表读取指定的信息(字符串、二进制和十六进制),并转换为指定的类型。
  1.Read系列方法。
  function ReadString(const Name: string): string;
  读取一个字符串值,Name为字符串名称。
  function ReadInteger(const Name: string): Integer;
  读取一个整数值,Name为整数名称。
  function ReadBinaryData(const Name: string; var Buffer; BufSize: Integer):Integer;
  读取二进制值,Name为二进制值名称,Buffer为接收缓冲区,BufSize为缓冲区大小,返回为实际读取的字节数。
  其它方法还有:ReadBool、ReadCurrency、ReadDate、ReadDateTime、ReadFloat、ReadTime。
  2.读取信息一例(显示Windows的版本)。
  在HKEY-LOCAL-MACHINE下,有三个字符串值Version、VersionNumber和SubVersionNumber,用于记录当前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
   if OpenKey( ′Software′,false ) then
   begin
   memo1.lines.add('Windows版本:′+ ReadString(′Version′));
   memo1.lines.add('Windows版本号:′ + ReadString(′VersionNumber′));
   memo1.lines.add(′Windows子版本号:′ + ReadString(′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;

  五、键值维护 "在Delphi程序中操作注册表"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/12869.html


关键字:

关于《在Delphi程序中操作注册表》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td