delphi注册表操作.doc

上传人:枫** 文档编号:562084759 上传时间:2023-04-20 格式:DOC 页数:8 大小:34.50KB
返回 下载 相关 举报
delphi注册表操作.doc_第1页
第1页 / 共8页
delphi注册表操作.doc_第2页
第2页 / 共8页
delphi注册表操作.doc_第3页
第3页 / 共8页
delphi注册表操作.doc_第4页
第4页 / 共8页
delphi注册表操作.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《delphi注册表操作.doc》由会员分享,可在线阅读,更多相关《delphi注册表操作.doc(8页珍藏版)》请在金锄头文库上搜索。

1、delphi注册表操作 2009-07-28 17:50在Delphi程序中操作注册表 32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息。 一、创建和释放TRegistry对象 1.创建TRegistry对象。为了操作注册表,要创建一个TRegistry对象:ARegistry:=TRegistry.Create; 2.释放TRegistry对象。对注册表操作结束后,应释放TRegistry对象所占内存:ARegistry.Destroy。 二、指定要操作的键 操作注册表时,首先应指定操作的主键:先给属性RootKey赋值以指定根键,然后用方法OpenKey来指定要

2、操作的主键名。 1.指定根键(RootKey)。 根键是注册表的入口,也注册表信息的分类,其值可为: HKEY-CLASSES-ROOT:存储整个系统对象类信息,如ActiveX对象注册、文件关联等信息。 HKEY-CURRENT-USER:存储当前用户的配置信息。为属性RootKey的默认值。 HKEY-LOCAL-MACHINE:存储当前系统的软硬件配置信息。应用程序自己的信息可以存储在该根键下。 HKEY-USERS:存储所有用户通用的配置信息。 还可以是HKEY-CURRENT-CONFIG、HKEY-DYN-DATA。 2.指定要操作的主键。 FunctionOpenKey(cons

3、tKey:string;CanCreate:Boolean):Boolean; Key:主键名,是键名全名中除去根键的部分,如Software。 CanCreate:在指定的主键名不存在时,是否允许创建该主键,True表示允许。 返回值True表示操作成功。 3.关闭当前主键。 在读取或存储信息之后,应及时将关闭当前主键:procedureCloseKey。 三、从注册表中读取信息 Read系列方法从注册表读取指定的信息(字符串、二进制和十六进制),并转换为指定的类型。 1.Read系列方法。 functionReadString(constName:string):string; 读取一个字

4、符串值,Name为字符串名称。 functionReadInteger(constName:string):Integer; 读取一个整数值,Name为整数名称。 functionReadBinaryData(constName:string;varBuffer;BufSize:Integer):Integer; 读取二进制值,Name为二进制值名称,Buffer为接收缓冲区,BufSize为缓冲区大小,返回为实际读取的字节数。 其它方法还有:ReadBool、ReadCurrency、ReadDate、ReadDateTime、ReadFloat、ReadTime。 2.读取信息一例(显示W

5、indows的版本)。 在HKEY-LOCAL-MACHINE下,有三个字符串值Version、VersionNumber和SubVersionNumber,用于记录当前Windows的版本号。 请在Uses中包含Registry单元 procedureTForm1.Button1Click(Sender:TObject); var ARegistry:TRegistry; begin ARegistry:=TRegistry.Create; /建立一个TRegistry实例 withARegistrydo begin RootKey:=HKEY-LOCAL-MACHINE;/指定根键为HKE

6、Y-LOCAL-MACHINE /打开主键Software ifOpenKey(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; 在Delphi程序中操作注册表 32位Delphi程序中可利用

7、TRegistry对象来存取注册表文件中的信息。 一、创建和释放TRegistry对象 1.创建TRegistry对象。为了操作注册表,要创建一个TRegistry对象:ARegistry := TRegistry.Create; 2.释放TRegistry对象。对注册表操作结束后,应释放TRegistry对象所占内存:ARegistry.Destroy。 二、指定要操作的键 操作注册表时,首先应指定操作的主键:先给属性RootKey赋值以指定根键,然后用方法OpenKey来指定要操作的主键名。 1.指定根键(RootKey)。 根键是注册表的入口,也注册表信息的分类,其值可为: HKEYCL

8、ASSESROOT:存储整个系统对象类信息,如ActiveX对象注册、文件关联等信息。 HKEYCURRENTUSER:存储当前用户的配置信息。为属性RootKey的默认值。 HKEYLOCALMACHINE:存储当前系统的软硬件配置信息。应用程序自己的信息可以存储在该根键下。 HKEYUSERS:存储所有用户通用的配置信息。 还可以是HKEYCURRENTCONFIG、HKEYDYNDATA。 2.指定要操作的主键。 Function OpenKey(const Key: string; CanCreate: Boolean): Boolean; Key:主键名,是键名全名中除去根键的部分,

9、如SoftwareBorlandDelphi。 CanCreate:在指定的主键名不存在时,是否允许创建该主键,True表示允许。 返回值True表示操作成功。 3.关闭当前主键。 在读取或存储信息之后,应及时将关闭当前主键:procedure CloseKey。 三、从注册表中读取信息 Read系列方法从注册表读取指定的信息(字符串、二进制和十六进制),并转换为指定的类型。 1.Read系列方法。 function ReadString(const Name: string): string; 读取一个字符串值,Name为字符串名称。 function ReadInteger(const N

10、ame: string): Integer; 读取一个整数值,Name为整数名称。 function ReadBinaryData(const Name: string; var Buffer; BufSize: Integer):Integer; 读取二进制值,Name为二进制值名称,Buffer为接收缓冲区,BufSize为缓冲区大小,返回为实际读取的字节数。 其它方法还有:ReadBool、ReadCurrency、ReadDate、ReadDateTime、ReadFloat、ReadTime。 2.读取信息一例(显示Windows的版本)。 在HKEYLOCALMACHINESoft

11、wareMicrosoftWindowsCurrentVersion下,有三个字符串值Version、VersionNumber和SubVersionNumber,用于记录当前Windows的版本号。 请在Uses中包含Registry单元 procedure TForm1.Button1Click(Sender:TObject); var ARegistry : TRegistry; begin ARegistry := TRegistry.Create; /建立一个TRegistry实例 with ARegistry do begin RootKey := HKEYLOCALMACHINE

12、;/指定根键为HKEYLOCALMACHINE /打开主键SoftwareMicrosoftWindowsCurrentVersion if OpenKey( SoftwareMicrosoftWindowsCurrentVersion,false ) then begin memo1.lines.add(Windows版本: ReadString(Version); memo1.lines.add(Windows版本号: ReadString(VersionNumber); memo1.lines.add(Windows子版本号: ReadString(SubVersionNumber);

13、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

14、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:=HKEYLOCALMACHINE; if OpenKey(SoftwareMicrosoftWindowsCurrentVersionRun,True) then WriteString(delphi,C:Program Filesborlanddelphi3bindelphi32.exe); CloseKey; Destroy; end; end; 五、键值维护 除了在注册表中读取、存储外,程序可能还需要增加主键、删除主键、主键改名、数据值改名等。 1.创建新主键:function Creat

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号