2012-10-10 112 views
-3

在Win7註冊表編輯器編輯或查看二進制就像1A 2B 3C 4D 現在我得到一個字符串如何將二進制數據寫入註冊表?

str := '1A,2B,3C,4D'; 

怎麼寫海峽進入註冊表,在Win7 REGEDIT它顯示1A 2B 3C 4D

+0

您的文字說: 「二進制」,但您的樣本數據顯示'str',這顯然是一個字符串。你在問什麼?寫一個字符串,或者寫一個二進制值。他們不是一回事。 –

+0

你的問題是不精確和模糊的。準確和謹慎。確保我們清楚你在說什麼。如果英語不是您的優點,請使用代碼傳達詳細信息。 –

回答

3
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; 
0

您可以使用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)); 
+4

除非'str'是'AnsiString'或'RawByteString',否則在Delphi 2009+中不起作用。請記住'String'現在是Unicode。 –

相關問題