`
hjy2099
  • 浏览: 255363 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

在Delphi程序中操作注册表

阅读更多
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;

  五、键值维护
  除了在注册表中读取、存储外,程序可能还需要增加主键、删除主键、主键改名、数据值改名等。
  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联机帮助文件。

转自:http://www.delphifans.com/infoView/Article_18.html 
分享到:
评论

相关推荐

    DELPHI专题--程序应用

    在Delphi程序中操作注册表 鼠标和键盘控制 如何为Delphi程序添加事件和事件处理器 在Delphi应用程序中拖动控件 用DEPHI为应用软件建立注册机制 用Delphi创建临时文件 Delphi 5快速创建控制面板程序 Delphi...

    DELPHI专题文档-程序应用

    在Delphi程序中操作注册表 鼠标和键盘控制 如何为Delphi程序添加事件和事件处理器 在Delphi应用程序中拖动控件 用DEPHI为应用软件建立注册机制 用Delphi创建临时文件 Delphi 5快速创建控制面板程序 Delphi...

    内置了Delphi读写INI文件,读写注册表,Winsock的Windows助手程序.rar

    一款内置了提取图标、打开程序、显示程序信息、读写INI文件,读写注册表,Winsock等简单的技术的Windows助手程序,适合Delphi初学者学习!相比上一版,本次版本做了如下改动:  1.取消了上一版本使用的VclSkin皮肤控件...

    Delphi TRegistry获取注册表某节点所有键值.rar

    Delphi TRegistry获取注册表某节点所有键值,注册表操作实例,作者:lifangchao,教科书中的示例,枚举并列出注册表中指定节点下的所有键值,程序运行后自动读取注册表中已定义好的节点项,遍历该节点下的所有键值并...

    Delphi编程访问注册表

     第二、明确如何在程序中完成对注册表的读写操作;  第三、你可以将本文所述的方法移植到VC、VB等语言中,举一反三、触类旁通,达到随心所欲修改注册表的目的。  通过实践,你完全有可能编写出象"超级兔子"那样...

    Delphi通过注册表在程序中增减和修改数据源.rar

    Delphi通过注册表在程序中增减和修改数据源,具体代码部分摘录://建立一个Registry实例,设置根键值为HKEY_LOCAL_MACHINE  if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',True) then  //找到Software...

    软件工程师典藏 Delphi程序开发范例宝典

    《Delphi程序开发范例宝典(第3版)》全面介绍了Delphi程序开发所用到的技术和技巧,共分19章,内容包括窗体与界面设计、控件应用、数据处理技术、图形技术、多媒体技术、文件系统、操作系统与Window相关程序、注册表...

    Delphi程序开发范例宝典

    本书全面介绍了Delphi程序开发所用到的技术和技巧,共分19章,内容包括窗体与界面技术、控件应用、数据处理技术、图形技术、多媒体技术、文件系统、操作系统与Windows相差程序、注册表、数据库技术、SQL查询相关技术...

    Delphi程序开发范例宝典4

    包括窗体与界面技术、控件应用、图形技术、多媒体技术、文件系统、操作系统与Windows相关程序、注册表、数据库技术、SQL技术、报表与打印技术、图表技术、硬件相关开发技术、网络开发技术、Web编程、加密/安全与...

    Delphi7 OpenKey删除注册表指定键值项.rar

    Delphi7简单对windows 7注册表进行操作,先使用OpenKey打开键值,然后使用WriteInteger修改键值,当然也可删除键值,删除已定义好的注册表中的指定项,本演示例仅可删除注册表指定项,并不增加指定项或键值,除此之...

    delphi程序开发范例宝典光盘 3

    本书全面介绍了Delphi程序开发所用到的技术和技巧,共分19章,内容包括窗体与界面设计、控件应用、数据处理技术、图形技术、多媒体技术、文件系统、操作系统与Window相关程序、注册表、数据库技术、SQL查询相关技术...

    Delphi程序开发范例宝典(第3版).正解的

    《delphi程序开发范例宝典(第3版)》全面介绍了delphi程序开发所用到的技术和技巧,共分19章,内容包括窗体与界面设计、控件应用、数据处理技术、图形技术、多媒体技术、文件系统、操作系统与window相关程序、注册表...

    delphi程序开发范例宝典光盘

    本书全面介绍了Delphi程序开发所用到的技术和技巧,共分19章,内容包括窗体与界面设计、控件应用、数据处理技术、图形技术、多媒体技术、文件系统、操作系统与Window相关程序、注册表、数据库技术、SQL查询相关技术...

    Delphi编程技巧.rar

    在DELPHI程序中使用ADO对象存取ODBC数据库 轻轻松松在DELPHI3.0中实现三态按钮 Api函数列表【与文件有关】 Api函数列表【与打印有关】 Delphi中TApplication类的巧用 Delphi 中自做动态显示的控件 ...

    注册表实例

    Delphi程序向注册表中写入、读出、维护等操作的实例。 Delphi实例程序,带有源码和详细说明,亲自测试可用。

    043_《Delphi程序开发范例宝典(第2版)》(3/3)

    本书全面介绍了delphi程序开发所用到的技术和技巧,共分19章,内容包括窗体与界面设计、控件应用、数据处理技术、图形技术、多媒体技术、文件系统、操作系统与window相关程序、注册表、数据库技术、sql查询相关技术...

    明日科技《Delphi程序开发范例宝典》第1-3章源码

    本书全面介绍了Delphi程序开发所用到的技术和技巧,共分19章,内容包括窗体与界面技术、控件应用、数据处理技术、图形技术、多媒体技术、文件系统、操作系统与Windows相差程序、注册表、数据库技术、SQL查询相关技术...

    delphi程序开发范例宝典光盘(01)

    本书全面介绍了Delphi程序开发所用到的技术和技巧,共分19章,内容包括窗体与界面设计、控件应用、数据处理技术、图形技术、多媒体技术、文件系统、操作系统与Window相关程序、注册表、数据库技术、SQL查询相关技术...

    Delphi程序开发范例宝典_part01

    本书全面介绍了Delphi程序开发所用到的技术和技巧,共分19章,内容包括窗体与界面设计、控件应用、数据处理技术、图形技术、多媒体技术、文件系统、操作系统与Window相关程序、注册表、数据库技术、SQL查询相关技术...

    Delphi程序开发范例宝典_part03

    本书全面介绍了Delphi程序开发所用到的技术和技巧,共分19章,内容包括窗体与界面设计、控件应用、数据处理技术、图形技术、多媒体技术、文件系统、操作系统与Window相关程序、注册表、数据库技术、SQL查询相关技术...

Global site tag (gtag.js) - Google Analytics