在Delphi程序中操作注册表

Delphi TRegistry获取注册表某节点所有键值.rar Delphi TRegistry获取注册表某节点所有键值,注册表操作实例,作者:lifangchao,教科书中的示例,枚举并列出注册表中指定节点下的所有键值,程序运行后自动读取注册表中已定义好的节点项,遍历该节点下的所有键值并显示出来,一个Delphi操作Windows注册表的入门级读取注册表内容的例子。 立即下载
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联机帮助文件。
delphi 对注册表的操作 delphi 写的注册表操作示例教程。可以作为教材使用。内附说明性注示。做软件时,登录窗口《保存用户名和密码》时使用。 立即下载

相关推荐

Delphi 读取注册表,获取Bios、CPU等信息.rar

Delphi 读取注册表,获取Bios、CPU等信息,列举一些读取出来,在本例中,将从注册表获取到基本的Bios输入输出系统信息、CPU硬件信息以及电源电池信息等。

在Delphi中操作注册表的方法

Delphi提供了TRegistry类,它直接继承自TObject类,主要属性有:RootKey等,主要方法有:Create,CreateKey(Key),   OpenKey(Key,CanCreate),WriteString(Name,Value),ReadString(Name),CloseKey,Free等,下面对它们进行简单介绍。 1、1、

shao882的专栏 4955

Delphi修改操作注册表权限例子(附带jcl控件源码)

Delphi修改操作注册表权限的例子,用delphi2007编译的,Win7_64位环境下亲测可行。

delphi 遍历注册表

下面程序是读出windows中所有的已安装的程序.你自己看一下,很容易的.      uses   Registry;           procedure   TForm1.Button1Click(Sender:   TObject);      Var     list,softList   :TStringList;                Reg   :TRegistr

⑥②专栏 2971

DELPHI 从注册表中读取各类硬件信息

DELPHI 从注册表中读取各类硬件信息

Delphi 注册表操作完全手册

内容概要:本文档详尽介绍了如何在Delphi中操作Windows注册表,涵盖了创建、读取、修改、删除注册表项及键值的具体方法。文档首先解释了TRegistry对象的基本操作,包括创建和释放对象、指定根键和主键。接着详细描述了读取和写入不同类型的数据(如字符串、整数、二进制数据等)的方法,并通过多个示例展示了如何利用注册表实现各种功能,如让程序随Windows启动运行、实现文件关联、检测系统组件安装情况、创建桌面快捷方式、配置ODBC数据源、加密程序、记忆参数设置、动态设置ODBC数据源、注册BDE、建立注册机制、修改资源管理器上下文菜单命令、创建程序快捷方式、恢复系统关闭时的状态、在新建子菜单中增加命令、搜索注册表的全部项和键等。此外,文档还提供了完整的代码示例和详细的注释,帮助开发者理解和应用这些技术。 适合人群:具备一定编程基础,特别是熟悉Delphi编程语言的研发人员,尤其是那些需要深入了解Windows注册表操作的开发人员。 使用场景及目标:①掌握TRegistry类的各种方法和属性,以便在Delphi应用程序中高效地操作Windows注册表;②实现诸如自动启动、文件关联、系统信息获取、数据库配置等功能;③提高应用程序的安全性和用户体验,如通过注册表加密、记忆参数设置等;④简化开发流程,减少对外部配置文件的依赖,直接利用注册表存储和读取应用程序配置信息。 阅读建议:此资源不仅提供了代码实现,更注重于内容上的需求分析和方案设计。因此,在学习过程中应结合实际应用场景,深入理解每个操作背后的原理,并动手实践,逐步调试和完善代码。同时,建议参考Delphi联机帮助文件和其他相关文档,以加深对注册表操作的理解和应用。

delphi 操作注册表详解

32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息。     一、创建和释放TRegistry对象     1.创建TRegistry对象。为了操作注册表,要创建一个TRegistry对象:ARegistry := TRegistry.Cre

winternight的专栏 2374

MATLAB实战:手把手教你实现Gardner环路位同步(附完整代码)

本文通过MATLAB实战,详细讲解了Gardner环路位同步算法的原理与实现。内容涵盖插值滤波器、定时误差检测、环路滤波器与数控振荡器等核心模块,并提供完整代码和调试技巧,帮助读者掌握数字通信中关键的符号定时同步技术。

weixin_29048775的博客 175

Delphi程序中操作注册表

32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息。   一、创建和释放TRegistry对象  1.创建TRegistry对象。为了操作注册表,要创建一个TRegistry对象:ARegistry := TRegistry.Create;  2.释放TRegistry对象。对注册表操作结束后,应释放TRegistry对象所占内存:ARegistry.Destroy。

hello simon 746

Sony SLVS-EC接口实战:如何用Xilinx K7 FPGA接收IMX421传感器数据(附电气特性匹配技巧)

本文详细介绍了在Xilinx Kintex-7 FPGA平台上实现Sony IMX421图像传感器SLVS-EC接口数据接收的完整实战方案。内容涵盖从硬件选型、PCB布局的电气特性匹配技巧,到FPGA内部GTX收发器配置、多通道绑定以及SLVS-EC协议数据解析与图像重组的关键步骤,为高速视觉系统开发提供了宝贵的调试经验和系统集成指导。

efc12345678的博客 265

基于近场动力学的二维疲劳裂纹扩展模型_近场动力学数值模拟的程序实现(1)——引言...

参考书目W. H. Gerstle. 2015. Introduction to Practical Peridynamic: Computational Solid Mechanics Without Stress and Strain.E.Madenci, A.Barut, M.Dorduncu. Peridynamic Differential Operator for Numerical ...

weixin_39764603的博客 1203
上一篇: delphi LISTVIEW使用
下一篇: delphi窗体之间的相互传值
蓝魔鬼仙
博客等级 码龄15年 14粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值