Problem z odczytem binarnym z rejestru windows

0

Część pisze programik do przeglądania rejestru windows.
Umiem porgrać nazwy, typy kluczy oraz wartości ale problem zaczyna się przy odczytywaniu wartości binarnych/wszystkie dane odczytuje za pomoca TRegistry/. Próbowałem za pomocą z ReadBinaryData
z krót kodu

var
  Reg : TRegister;
  Buffer: Pointer;

begin
 //inicijacje
  Reg.ReadBinaryData(nazwa klucz, Buffer,SizeOf(Buffer));

tej opcji zawsze używałem jak zapisywałem lub odczytywałem określone dane binarne /zmienne rekordowe/.
ale w tedy wyskakiwał mi błąd. Może wie ktoś jak mogę odczytać wartośc binarną.

0

a jaki ci błąd wyskakuje?

0

Najprawdopodobniej to jest źle:

SizeOf(Buffer)

Bo to odczyta tylko 4 bajty (wielkość wskaźnika).

0

Zrób np. tak:

var
 Reg: TRegistry; // nie TRegister !
 Buffer: array[0..1023] of Byte; // bufor 1024 bajtowy
 x: integer; // liczba bajtów skopiowanych do bufora

begin
  x := Reg.ReadBinaryData(nazwa_klucza, Buffer, SizeOf(Buffer));

// sprawa interpretacji x bajtów skopiowanych do Buffer należy już do Ciebie

//dopisek
Czechy - Grecja 3 : 0

0

chyba raczej

 x := Reg.ReadBinaryData(nazwa_klucza, @Buffer, SizeOf(Buffer));
0

chyba raczej
x := Reg.ReadBinaryData(nazwa_klucza, @Buffer, SizeOf(Buffer));

Buffer, nie @Buffer !

Jeśli damy @Buffer to: [Error] Unit1.pas(xxx): Constant object cannot be passed as var parameter.

function ReadBinaryData(const Name: String; var Buffer; BufSize: Integer): Integer;

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