当前位置:编程学习 > Delphi >>

Delphi 读写注册表

用Delphi 怎么创建删除 修改

注册表中的所有类型的值?

假设我现在要在下 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft

新建一个 new项,删除一个del项.

新建一个字符串值 名称为 Str 值为abc

新建一个dword值 名称为 Dwo 值为 cba

新建一个二进制值 名称为 two 值为 acb

请给出这个例子.

当然最好用函数写,读写注册表,直接传参数.

补充:

弄错了!

新建一个二进制值 名称为 two 值为 ff

新建一个dword值 名称为 Dwo 十六进制值为 ee

追问:

哇 靠!

跟百度 搜的一模一样啊!

你能不能弄点你自己写的,

还有 还有怎么删除项和值??

谢谢

答案:

给你几个函数,分别是读写字符串与二进制值:

在单元文件中加入Registry
//读取注册表 字符串
function FindRegKeyString(Param_RootKey:HKey;Param_CurrentKey,Param_KeyItem:String):String;
var
MyRegistry:TRegistry;
begin
MyRegistry:=TRegistry.Create;
with MyRegistry do
begin
RootKey:=Param_RootKey;
if OpenKey(Param_CurrentKey,False)=True then
begin
try
Result:=ReadString(Param_KeyItem);
except
Result:='';
end;
CloseKey();
end
else
Result:='';
Free;
end;
end;

//读取注册表,二进制
function FindRegKeyInteger(Param_RootKey:HKey;Param_CurrentKey,Param_KeyItem:String):Integer;
var
MyRegistry:TRegistry;
begin
MyRegistry:=TRegistry.Create;
with MyRegistry do
begin
RootKey:=Param_RootKey;
if OpenKey(Param_CurrentKey,False)=True then
begin
try
Result:=ReadInteger(Param_KeyItem);
except
Result:=0;
end;
CloseKey();
end
else
Result:=0;
Free;
end;
end;

//写进注册表,字符串
procedure WriteRegKeyString(Param_RootKey:HKey;Param_CurrentKey,Param_KeyItem,Param_KeyString:String);
var
MyRegistry:TRegistry;
begin
MyRegistry:=TRegistry.Create;
with MyRegistry do
begin
RootKey:=Param_RootKey;
if OpenKey(Param_CurrentKey,True)=True then
begin
try
WriteString(Param_KeyItem,Param_KeyString);
except
Application.Messagebox(MSG_REGWRITEERROR,MSG_ERROR,MB_ICONSTOP);
end;
CloseKey();
end
else
Application.Messagebox(MSG_REGWRITEERROR,MSG_ERROR,MB_ICONSTOP);
Free;
end;
end;

//写入注册表 二进制
procedure WriteRegKeyInteger(Param_RootKey:HKey;Param_CurrentKey,Param_KeyItem:String;Param_KeyInteger:Integer);
var
MyRegistry:TRegistry;
begin
MyRegistry:=TRegistry.Create;
with MyRegistry do
begin
RootKey:=Param_RootKey;
if OpenKey(Param_CurrentKey,True)=True then
begin
try
WriteInteger(Param_KeyItem,Param_KeyInteger);
except
Application.Messagebox(MSG_REGWRITEERROR,MSG_ERROR,MB_ICONSTOP);
end;
CloseKey();
end
else
Application.Messagebox(MSG_REGWRITEERROR,MSG_ERROR,MB_ICONSTOP);
Free;
end;
end;

你可以使用 REGISTRY的类 声明一个 TREGISTRY的对象 就可以使用函数了 DELPHI自身有支持注册表的类的

上一个:Delphi常用语句?
下一个:DELPHi 图片问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,