{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.
分享到:
相关推荐
禁用U盘和光驱(Delphi操作注册表 源码) 设置后重启就生效了。 比较简单,也有参考价值。现在Delphi越来越凋零了,嗨。。。
delphi源码注册表简单操作 delphi源码注册表简单操作
Delphi修改操作注册表权限的例子,用delphi2007编译的,Win7_64位环境下亲测可行。
请参考这个例子的方法吧,很简单,面向Delphi初学者,优化过程中,适时显示百分比进度条,代码中操作注册表的HKEY_LOCAL_MACHINE根键,用到了相关的函数,TRegistry.Create,RootKey,OpenKey,WriteInteger等,更多...
delphi 写的注册表操作示例教程。可以作为教材使用。内附说明性注示。做软件时,登录窗口《保存用户名和密码》时使用。
自己写的几个注册表操作实例,希望对大家有用
在Delphi中定义了一个Tregistry类,使用string操作注册表
Delphi TRegistry获取注册表某节点所有键值,注册表操作实例,作者:lifangchao,教科书中的示例,枚举并列出注册表中指定节点下的所有键值,程序运行后...一个Delphi操作Windows注册表的入门级读取注册表内容的例子。
可以通过Delphi对注册表进行操作
主要介绍了Delphi 常见文件处理及注册表文件的使用实例的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
delphi注册表操作宣贯.pdf
一款内置了提取图标、打开程序、显示程序信息、读写INI文件,读写注册表,Winsock等简单的技术的Windows助手程序,适合Delphi初学者学习!相比上一版,本次版本做了如下改动: 1.取消了上一版本使用的VclSkin皮肤控件...
Delphi修改操作注册表权限的代码,使用Delphi的朋友可以参考下。
Delphi通过注册表在程序中增减和修改数据源,具体代码部分摘录://建立一个Registry实例,设置根键值为HKEY_LOCAL_MACHINE if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',True) then //找到Software...
Delphi 7.0的一个注册表操作实例,向注册表中写入数据,向其写入了向条预设好的静态数据,包括节点键值名称和参数值,很好的向大家演示了基础级的Delphi操作系统注册表的方法。在建立注册表操作对象后,我们可以这样...
Delphi 操作注册表的HKEY_LOCAL_MACHINE根键优化二级缓存
下面以一个实例为基础,讲解在DelPhi中如何以编程方式对注册表进行修改。通过本文的学习,你可以获得以下知识: 第一、明确编程访问注册表的基本思想; 第二、明确如何在程序中完成对注册表的读写操作; ...
Delphi程序向注册表中写入、读出、维护等操作的实例。 Delphi实例程序,带有源码和详细说明,亲自测试可用。
在Delphi中如何对注册表进行操作.txt
Delphi7简单对windows 7注册表进行操作,先使用OpenKey打开键值,然后使用WriteInteger修改键值,当然也可删除键值,删除已定义好的注册表中的指定项,本演示例仅可删除注册表指定项,并不增加指定项或键值,除此之...