Windows注册表中有如下的值数据:
"{ED475418-B0D6-11D2-8C3B-00104B2A6676}"=hex:04,00,00,00
如何使用Delphi编程实现将上面的数据读出来,在后面追加成如下的值:
"{ED475418-B0D6-11D2-8C3B-00104B2A6676}"=hex:04,00,00,00,05,00,00,00我知道读出数据肯定是需要使用ReadbinaryData函数,但是读出的数据如何处理?如果能把上面的hex:04,00,00,00,通过程序读出来转为 Integer类型的 4,我就可以搞定了,各位高手帮忙看看吧,谢谢!
"{ED475418-B0D6-11D2-8C3B-00104B2A6676}"=hex:04,00,00,00
如何使用Delphi编程实现将上面的数据读出来,在后面追加成如下的值:
"{ED475418-B0D6-11D2-8C3B-00104B2A6676}"=hex:04,00,00,00,05,00,00,00我知道读出数据肯定是需要使用ReadbinaryData函数,但是读出的数据如何处理?如果能把上面的hex:04,00,00,00,通过程序读出来转为 Integer类型的 4,我就可以搞定了,各位高手帮忙看看吧,谢谢!
Registry;procedure TForm1.FormCreate(Sender: TObject);
const
newdata:array[0..3] of char = (#5,#0,#0,#0);
var
reg: TRegistry;
datalen:Integer;
data:array of Char ;begin
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CURRENT_USER;
if reg.OpenKey('test',false) then
try
datalen := reg.GetDataSize('{ED475418-B0D6-11D2-8C3B-00104B2A6676}');
SetLength(Data,datalen);
try
datalen := reg.ReadBinaryData('{ED475418-B0D6-11D2-8C3B-00104B2A6676}',data[0],datalen);
SetLength(Data,datalen+sizeof(newdata));
move(newdata,pchar(Integer(data)+datalen)^,sizeof(newdata));
datalen := datalen + sizeof(newdata);
reg.WriteBinaryData( '{ED475418-B0D6-11D2-8C3B-00104B2A6677}',data[0],datalen);//这里使用新的键值用于查看效果
finally
Data := Nil;
end;
finally
reg.CloseKey;
end; finally
reg.Free;
end;
end;