如何向注册表内写入dword值,delphi提供的几个registry的写函数,没法实现,(100分)

  • 主题发起人 torrentwang
  • 开始时间
T

torrentwang

Unregistered / Unconfirmed
GUEST, unregistred user!
如何向注册表内写入dword值,delphi提供的几个registry的写函数,没法实现,
常用的如writestring
writeblob,
writeinteger
如何写入dword类型的值呢
 
Delphi的 writeinteger函数写入的就是Dword值!
写入Dword值较简单,直接在里面加上键名和数值就可以了如:WriteInter('NoFind',1);
注意定义时要定义Interger类型;
下面写入的是二进制值:
var
Reg : TRegistry;
Buf : array [1..4] of Byte; //因为你写入的数据是00 00 00 01,四个字节,所以数组大小定义为4了;
begin
Reg:=TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer', True);
//这里给数组赋值,对应关系看下面
// 00 00 00 01
// Buf[1] Buf[2] Buf[3] Buf[4]
Buf[1] := 00;
Buf[2] := 00;
Buf[3] := 00;
Buf[4] := 01;
Reg.WriteBinaryData('NoSaveSettings', Buf , SizeOf(Buf));
//WriteBinaryData的第三个参数是你要写入的节字数大小,SizeOf(Buf)是得到数组Buf的大小(即是4)。
//如果你将这句改为
//Reg.WriteBinaryData('NoSaveSettings', Buf , 2);
//那么写入的只是Buf[1]和Buf[2],如果打开注册表看,这个键的值是00 00
finally
Reg.Free;
end;

 
谢谢你的回答,谢谢
 
顶部