在Win7註冊表編輯器編輯或查看二進制就像1A 2B 3C 4D 現在我得到一個字符串如何將二進制數據寫入註冊表?
str := '1A,2B,3C,4D';
怎麼寫海峽進入註冊表,在Win7 REGEDIT它顯示1A 2B 3C 4D
在Win7註冊表編輯器編輯或查看二進制就像1A 2B 3C 4D 現在我得到一個字符串如何將二進制數據寫入註冊表?
str := '1A,2B,3C,4D';
怎麼寫海峽進入註冊表,在Win7 REGEDIT它顯示1A 2B 3C 4D
var
Data: array of Byte; // or whatever binary container you want to use
Reg: TRegistry;
begin
...
SetLength(Data, 4);
Data[0] := $1A;
Data[1] := $2B;
Data[2] := $3C;
Data[3] := $4D;
Reg := TRegistry.Create(KEY_SET_VALUE);
try
Reg.RootKey := ...;
if Reg.OpenKey('...', True) then
begin
Reg.WriteBinaryData('Value', Data[0], 4);
Reg.CloseKey;
end;
finally
Reg.Free;
end;
...
end;
您可以使用TRegistry.WriteBinaryData
。如果要編寫二進制$1A,$2B,$3C,$4D
而不是字符串數據'1A,2B,3C,4D'
,請嘗試將其更改爲#$1A#$2B#$3C#$4D
。
str := #$1A#$2B#$3C#$4D;
,並使用WriteBinaryData
寫註冊表:
Reg.WriteBinaryData('KeyName', str, Length(str) * SizeOf(Byte));
除非'str'是'AnsiString'或'RawByteString',否則在Delphi 2009+中不起作用。請記住'String'現在是Unicode。 –
您的文字說: 「二進制」,但您的樣本數據顯示'str',這顯然是一個字符串。你在問什麼?寫一個字符串,或者寫一個二進制值。他們不是一回事。 –
你的問題是不精確和模糊的。準確和謹慎。確保我們清楚你在說什麼。如果英語不是您的優點,請使用代碼傳達詳細信息。 –