注册表怎样写入二进制数据?
1,在Win7自带的注册表编辑器中,编辑一个二进制键值,其形式是类似这样的 : 1A 2B 3F 4D ....
2,因为 1A 2B 3F 4D 这样的数据是个16进制,现在现在的问题就是:我得到 字符串 str := '1A2B3F4D ,怎样转换过后,写入类型为二进制的注册表后,在自带注册表编辑器中还是显示 1A 2B 3F 4D
[解决办法]
不要去拿那注册表的类来搞了,那太复杂,可能有人会说我在4楼回复仅是添加,不能干其他事,那么,就请看看reg的参数吧,除了add外,还有许多参数,只要用得得法,语句就可以简单多了,例如,上述的Test已经存在,仅想编辑下,那么,结合着ADD、DELETE就ok了:
winexec('cmd /c REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Borland /v Test /f',0);
winexec('cmd /c REG Add HKEY_LOCAL_MACHINE\SOFTWARE\Borland /v Test /t REG_BINARY /d 1A2B3F4D',0);
procedure TForm1.Button1Click(Sender: TObject);
var
varStr, bVar: AnsiString;
varLen, i: Integer;
begin
varStr := '1A2B3F4D';
varLen := Length(varStr);
i := 1;
while i < varLen do
begin
bVar := bVar + Char(StrToIntDef('$' + varStr[i] + varStr[i + 1], 0));
inc(i, 2);
end;
with TRegistry.Create do
try
RootKey := HKEY_CURRENT_USER;
OpenKey('\Software', True);
try
WriteBinaryData('test', (@bVar[1])^, varLen div 2);
except
CloseKey;
end;
finally
Free;
end;
end;