在delphi中读写注册表

时间:2022-06-01 22:12:34
用Delphi操作Windows 95/NT注册表

  类似于Windows 3.x中的ini文件,Windows 95、Windows NT中的注册表记录了有
关Windows系统、应用软件运行时的初始化参数等。用户经常需要在程序中操作注册
表,以控制软件的启动及保存软件运行中的若干主要参数等。 
  Windows注册表的结构 
  运行Regedit,可以进入注册表编辑器。如下图。图1 
  上图中左框表示注册表的主键;右框中的名称指键值名,数据指键值;状态栏中显
示了当前打开的完整的主键名称。可以看出,整个注册表以树的结构及规则来组织,键
值名和键值组成了该树的叶子。 
  操作注册表实例 
  Delphi 3.0中的registry.dcu文件定义注册表的数据结构,并提供了TRegIniFile
这个不可视的控件。在程序中可通过该控件来操作注册表。
下面的例子描述了新建(修改)、读取、删除Windows注册表中
的主键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windo ws\Curre ntVersion\Run下
的键值名RemoteOperate和键值remoteControl.exe 。 
  unit s_registry; 
  interface 
  uses 
    Windows, Messages, SysUtils, Classes, Graphics, Contr ols, Forms, 
Dial ogs, StdCtrls,registry; 
  {注意:registry必须自己加上} 
  type 
  TForm1 = class(TForm) 
  new: TButton; 
  read: TButton; 
  delete: TButton; 
  procedure newClick(Sender: TObject); 
  procedure readClick(Sender: TObject); 
  procedure deleteClick(Sender: TObject); 
  private 
  { Private declarations } 
  public 
  { Public declarations } 
  end; 
  var 
  Form1: TForm1; 
  implementation 
  {$R *.DFM} 
  {新建(修改)注册表} 
  procedure TForm1.newClick(Sender: TObject); 
  var ini : TRegIniFile; 
  begin 
  ini := TRegIniFile.Create(‘'); 
  {创建TRegIniFile对象} 
  ini.RootKey:=HKEY_LOCAL_MACHINE; 
  {改变Rookey,缺省为HKEY_USERS} 
  ini.WriteString(‘Software\Microsoft\Windows\CurrentVers ion\Run',{主键} 
  ‘RemoteOperate', {键值名,若该名称与主键下的键值名相同, 
则修改它的键值。否则,新建键值名及键值} 
  ‘remoteControl.exe');  {键值} 
    ini.Free; 
  end; 
  {读取键值} 
  procedure TForm1.readClick(Sender: TObject); 
  var ini  : TRegIniFile; 
   RegStr: String; 
  begin 
   ini := TRegIniFile.Create(‘'); 
    ini.RootKey:=HKEY_LOCAL_MACHINE; 
    RegStr:=ini.ReadString(‘Software\Microsoft\Windows\C urrentVersion\Ru n’,‘RemoteOperate’,‘'); 
  ini.Free; 
  ShowMessage(RegStr); 
  end; 
  {删除键值名及键值} 
  procedure TForm1.deleteClick(Sender: TObject); 
  var ini  : TRegIniFile; 
  begin 
    ini := TRegIniFile.Create(‘'); 
    ini.RootKey:=HKEY_LOCAL_MACHINE; 
    ini.DeleteKey(‘Software\Microsoft\Windows\CurrentVer sion\Run',‘Remo teOperate'); 
    ini.Free; 
  end; 
  end. 
[url]http://www.delphibbs.com/delphibbs/dispq.asp?lid=1280022[/url]