在Delphi程序中操作注册表

2008-02-23 07:17:54来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

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;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:编辑总和

下一篇:COM程序编写入门(二)