Announcement

Collapse
No announcement yet.

REG_BINARY

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • REG_BINARY

    Hallo Leute,

    kann mir eventuell jemand verraten, wie man aus der Registry einen REG_BINARY - Wert erfassen kann?
    Ich weiss zwar, wie man mit ReadBinaryData einen REG_MULTI_SZ - Wert auslesen kann, aber bei einem REG_BINARY funktioniert das irgendwie nicht.
    Für eine kleine Hilfe wäre ich sehr dankbar.

    mfg

    Torsten Bloth

  • #2
    Hallo,

    TRegistry stellt dafür die Methoden <b>WriteBinaryData</b> und <b>ReadBinaryData</b> zur Verfügung. Das Auslesen eines binären Datenblocks könnte so aussehen. Mit <b>GetDataSize</B> wird die Größe eines bestimmten Datenwertes in Byte ermittelt, um einen genügend grossen Pufferbereich anfordern zu können. Wird mit binären Daten gerechnet, in denen NULL-Zeichen vorkommen können, sollte die Puffervariable als Zeiger auf einen Speicherbereich deklariert werden. In diesem Fall wird <b>SetLength</b> durch <b>AllocMem</b> ersetzt, um den Speicherbereich anzufordern. Das folgende Beispiel geht zur Vereinfachung jedoch von einer String-Variable aus.
    <pre>
    procedure TFormMain.ButtonReadClick(Sender: TObject);
    var
    aReg : TRegistry;
    iSize : Integer;
    sBuffer : String;
    begin
    aReg := TRegistry.Create;
    try
    with aReg do
    begin
    if OpenKey(cREGKEY, False) then
    begin
    try
    iSize := GetDataSize(cREGVALUE);
    if iSize > 0 then
    begin
    SetLength(sBuffer, iSize);
    ReadBinaryData(cREGVALUE, sBuffer[1], iSize);
    //GetHexDisplay(@sBuffer[1], iSize, ListBox1.Items);
    end;
    finally
    Closekey;
    end;
    end;
    end;
    finally
    aReg.Free;
    end;
    end;
    </pre&gt

    Comment


    • #3
      Uuuuuups, ich hatte mich noch gar nicht für die Lösung bedankt.
      Also, besten Dank für die wieder einmal schnelle Antwort.
      Ich hatte nur heute beim Durchstöbern des Forums gemerkt, dass hier noch was fehlte.

      mfg

      Torste

      Comment

      Working...
      X