{XP 注册表中的主键} HKEY_CLASSES_ROOT {文件类型信息} HKEY_CURRENT_USER {当前用户信息} HKEY_LOCAL_MACHINE {软硬件信息} HKEY_USERS {所有用户信息} HKEY_CURRENT_CONFIG {当前配置信息} {Delphi 定义的常量} HKEY_CLASSES_ROOT = DWORD($80000000); HKEY_CURRENT_USER = DWORD($80000001); HKEY_LOCAL_MACHINE = DWORD($80000002); HKEY_USERS = DWORD($80000003); HKEY_PERFORMANCE_DATA = DWORD($80000004); HKEY_CURRENT_CONFIG = DWORD($80000005); HKEY_DYN_DATA = DWORD($80000006);
本例效果图:
代码文件:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) ListBox1: TListBox; RadioGroup1: TRadioGroup; procedure FormCreate(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses Registry; procedure TForm1.FormCreate(Sender: TObject); begin ListBox1.Align := alLeft; RadioGroup1.Items.CommaText := 'HKEY-CLASSES-ROOT,' + 'HKEY-CURRENT-USER,' + 'HKEY-LOCAL-MACHINE,' + 'HKEY-USERS,' + 'HKEY-CURRENT-CONFIG'; end; procedure TForm1.RadioGroup1Click(Sender: TObject); var reg: TRegistry; begin reg := TRegistry.Create; case RadioGroup1.ItemIndex of 0: reg.RootKey := HKEY_CLASSES_ROOT; 1: reg.RootKey := HKEY_CURRENT_USER; {这是 RootKey 的默认值} 2: reg.RootKey := HKEY_LOCAL_MACHINE; 3: reg.RootKey := HKEY_USERS; 4: reg.RootKey := HKEY_CURRENT_CONFIG; end; reg.OpenKey('', False); reg.GetKeyNames(ListBox1.Items); reg.CloseKey; reg.Free; end; end.
窗体文件:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 176 ClientWidth = 325 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object ListBox1: TListBox Left = 0 Top = 8 Width = 153 Height = 134 ItemHeight = 13 TabOrder = 0 end object RadioGroup1: TRadioGroup Left = 159 Top = 8 Width = 158 Height = 160 Caption = 'RadioGroup1' TabOrder = 1 OnClick = RadioGroup1Click end end
代码文件:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses Registry; procedure TForm1.Button1Click(Sender: TObject); var reg: TRegistry; s: string; begin reg := TRegistry.Create; reg.RootKey := HKEY_CURRENT_USER; reg.OpenKey('Software/Microsoft/Internet Explorer/Main', False); {参数2为True时,会创建缺失} //reg.OpenKeyReadOnly('Software/Microsoft/Internet Explorer/Main'); {只读打开} s := reg.ReadString('Start Page'); ShowMessage(s); {http://del.cnblogs.com/} reg.CloseKey; reg.Free; end; end.代码文件:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses Registry; procedure TForm1.Button1Click(Sender: TObject); var reg: TRegistry; begin reg := TRegistry.Create; reg.RootKey := HKEY_CURRENT_CONFIG; reg.CreateKey('AAA/BBB/CCC'); reg.OpenKey('AAA/BBB/CCC', False); reg.WriteString('abc', '万一'); reg.CloseKey; reg.Free; end; procedure TForm1.Button2Click(Sender: TObject); var reg: TRegistry; begin reg := TRegistry.Create; reg.RootKey := HKEY_CURRENT_CONFIG; reg.OpenKey('XXX/YYY/ZZZ', True); reg.WriteInteger('xyz', 132435); reg.CloseKey; reg.Free; end; procedure TForm1.Button3Click(Sender: TObject); var reg: TRegistry; begin reg := TRegistry.Create; reg.RootKey := HKEY_CURRENT_CONFIG; reg.OpenKey('AAA/BBB/CCC', False); reg.DeleteValue('abc'); reg.CloseKey; reg.Free; end; procedure TForm1.Button4Click(Sender: TObject); var reg: TRegistry; begin reg := TRegistry.Create; reg.RootKey := HKEY_CURRENT_CONFIG; reg.OpenKey('XXX/YYY', False); reg.DeleteKey('ZZZ'); reg.CloseKey; reg.Free; end; procedure TForm1.Button5Click(Sender: TObject); var reg: TRegistry; begin reg := TRegistry.Create; reg.RootKey := HKEY_CURRENT_CONFIG; reg.DeleteKey('AAA'); reg.DeleteKey('XXX'); reg.CloseKey; reg.Free; end; end.
代码文件:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses Registry, ShlObj; procedure TForm1.FormCreate(Sender: TObject); begin Memo1.Align := alTop; Memo1.ScrollBars := ssBoth; Button1.Caption := '设置文件关联、图标关联'; Button2.Caption := '取消设置'; if (ParamStr(1) <> '') and FileExists(ParamStr(1)) then Memo1.Lines.LoadFromFile(ParamStr(1)); end; procedure TForm1.Button1Click(Sender: TObject); var reg: TRegistry; begin reg := TRegistry.Create; reg.RootKey := HKEY_CLASSES_ROOT; {在注册表中添加我们虚拟的 .tst 格式, 并指定默认项的值是 TestFile} reg.OpenKey('.tst', True); reg.WriteString('', 'TestFile'); reg.CloseKey; {文件打开关联} reg.OpenKey('TestFile/shell/open/command', True); reg.WriteString('', ParamStr(0) + ' %1'); reg.CloseKey; {文件图标关联} reg.OpenKey('TestFile/DefaultIcon', True); reg.WriteString('', ParamStr(0) + ',0'); reg.CloseKey; reg.Free; {刷新图标显示} SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); end; {清除上面的设置} procedure TForm1.Button2Click(Sender: TObject); var reg: TRegistry; begin reg := TRegistry.Create; reg.RootKey := HKEY_CLASSES_ROOT; reg.DeleteKey('.tst'); reg.DeleteKey('TestFile'); reg.Free; SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); end; end.