delphi处理注册表.txt22真诚是美酒,年份越久越醇香浓型;真诚是焰火,在高处绽放才愈是美丽;真诚是鲜花,送之于人手有余香。一颗孤独的心需要爱的滋润;一颗冰冷的心需要友谊的温暖;一颗绝望的心需要力量的托慰;一颗苍白的心需要真诚的帮助;一颗充满戒备关闭的门是多么需要真诚这一把钥匙打开呀!在Delphi中如何对注册表进行操作
Windows注册表跟踪记录操作系统和各种在
系统上安装的应用程序的有关信息。注册表是一个分层数据库。该数据库包含以特定格式表示的配置信息,并且可以直接通过注册表编辑器程序编辑,也可以通过应用程序修改。在早期的Windows版本中,INI文件粗略地完成了这一功能,尽管注册表与INI文件有一些相似之处,但不管怎样,由于组织结构的原因,注册表比传统的INI文件要复杂得多。
HKEY_LOCAL_MACHINE是一个整型常量
注册表分成若干个主要部分,各个部分(或者说关键字)包含了不同种类的系统信息。比如说,当你创建一个应用程序时,你可以在HKEY_LOCAL_MACHINE这个部分的SOFTWARE子节中注册你的配置信息。应用程序可以把配置信息以多种数据类型(包括字符串、货币、日期、浮点数和布尔值)的形式保存在关键字中。本文通过实例介绍在Delphi的应用
程序中如何对Windows 98的注册表进行操作(如:创建关键字、获取一个关键字的数据值、删除关键字、删除关键字中的数据值等),下列示例程序均在
Delphi 4.0中调试通过,请放心使用。
Delphi中定义了一个Tregistry类,通过使用这个类中封装的很多有关对
注册表操作的方法和属性可以完成对注册表的操作。
1、 在注册表中创建一个新的关键字
Tregistry类中有一个CreateKey方法,使用该方法可以在注册表中创建一个新的关键字,该方法的原型声明为:function CreateKey(const Key: string) : Boolean;
示例代码如下:
unit passwd;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Registry;
type
Tpassword = class(TForm)
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.DFM}
procedure Tpass
word.Button1Click(Sender: TObject);
var
MyReg : TRegistry;
begin
MyReg := TRegistry.Create;
MyReg.RootKey := HKEY_LOCAL_MACHINE;
try
if MyReg.OpenKey('\SOFTWARE\',FALSE) then
if not MyReg.KeyExists('Passwd') then
begin
MyReg.CreateKey('Passwd');
if MyReg.OpenKey('\SOFTWARE\Passwd',FALSE) then
Label1.Caption := '关键字Passwd已建立!'
else
Label1.Caption := '关键字Passwd无法建立!';
end
else
Label1.Caption := '关键字Passwd已经存在!'
else
Label1.Caption := '注册表打不开!';
MyReg.CloseKey;
finally
MyReg.Free;
end;
end;
end.
2、 向注册表关键字中写入相关的数据值
在Tregistry类中提供了一系列的Write方法用来写入与当前关键字相关的数据值。常用方法的原型定义如下:
procedure WriteString(const Name, Value : string);
procedure WriteInteger(const Name : string ; Value : Integer);
procedure WriteFloat(const Name : string ; Value : Double);
procedure WriteTime(const Name : string ; Value : TDateTime);
procedure WriteBool(const Name : string ; Value : Boolean);
示例代码:
procedure TForm1.Button1Click(Sender: TObject);
var
MyReg : TRegistry;
begin
MyReg := TRegistry.Create;
MyReg.RootKey := HKEY_LOCAL_MACHINE;
try
if not MyReg.OpenKey('\SOFTWARE\',FALSE) then ;
if not MyReg.KeyExists('Passwd') then
MyReg.CreateKey('Passwd');
if not MyReg.OpenKey('\SOFTWARE\Pas