Zapisywanie danych w rejestrze w postaci Hex

0

Witam. Mój problem wygląda następująco:
Wiem jak odczytać dane binarne z rejestru w postaci hexadecymalnej - korzystjąc z takiego kodu:

var
    Rejestr : TRegistry;
    Buff : array [0..4096] of Char;
    x, i: Integer;
begin
  Rejestr := TRegistry.Create;
  Rejestr.RootKey:=HKEY_LOCAL_MACHINE;
  Rejestr.OpenKey('SOFTWARE\Eset\Nod\CurrentVersion\Modules\Update\Settings\Config000\Settings', False);
  i := Rejestr.ReadBinaryData('Password', Buff, SizeOf(Buff));

  Edit1.Text := '';

  for x := 0 to i-1 do
   begin
    {hexowo - tak przedstawiane sa dane w edytorze rejestru}
    Edit1.Text := Edit1.Text + ' ' + IntToHex( Ord(Buff[x]), 2 );
  
  end;
  Rejestr.Free;
end;

w Edit daje to postać: 51 D6 B7 E9 A9 F0 93 F2 35 64 50 AD C4 C8 2C 75 89 31 59 BC

Ale mam problem z zapisywaniem danych w ten sposób:
otóż ciąg znaków 0cthnes5er chciałbym zmienić na 51 D6 B7 E9 A9 F0 93 F2 35 64 50 AD C4 C8 2C 75 89 31 59 BC i w tej postaci zapisać do rejestru do wartości binarnej.
Wiecie może jak to zrobić, szukałem na forum i bóg wie gdzie jeszcze i nie znalazełm. Zaznaczam że jestem początkujący.</delphi>

0

a po co chcesz to zmieniać na hex - zapisujesz jak leci, a przy odczycie sobie konwertujesz na hex.

var
buf : array[0..15] of char;
...
buf := '0cthnes5er';
reg.WriteBinaryData('Password', Buff, SizeOf(Buff));
...

0

hmmm. niestety w ten sposób z ciągu 0cthnes5er otrzymuję:
30 63 74 68 6E 65 73 35 65 72 00 00 00 00 00 00 00 00 00 00

a powinno być:
51 D6 B7 E9 A9 F0 93 F2 35 64 50 AD C4 C8 2C 75 89 31 59 BC

może inaczej... jak "przetłumaczyć":

51 D6 B7 E9 A9 F0 93 F2 35 64 50 AD C4 C8 2C 75 89 31 59 BC

do zwykłej postaci np string. Pomogłoby mi to w "rozszyfrowaniu" całego problemu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1