Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Registry: Binär-Wert auslesen (https://www.delphipraxis.net/21008-registry-binaer-wert-auslesen.html)

Pseudemys Nelsoni 26. Apr 2004 17:23


Registry: Binär-Wert auslesen
 
hallo,

wenn man in der registry einen binärischen key(ReadBinaryData) anguckt, sieht man sachen wir "05 0E" usw... wie krieg ich das in einem string angezeigt?

HomerGER 26. Apr 2004 18:19

Re: Registry: Binär-Wert auslesen
 
guck mal hier

hier noch mal
Code:
{******************************************} 
{2. by Ralph Friedman } 


 Question:
 I want to read out the binary-value "problems" of the path
 HKEY_DYN_DATA\Config Manager\Enum\[add the key of a hardware component] to
 detect if a hardware component is troubled and not working right.
 But I cannot handle the ReadBinaryData-Method of TRegistry correct.
 Everytime I use it, it always returns "4" as content of the buffer.
 How do I detect if the content of the binary-key "problems" is
 not "00 00 00 00" but something else like "16 00 00 00" or such? 


{Answer: Here's an example of ReadBinaryData } 

procedure TFrmReadBinary.Button1Click(Sender: TObject);
const
  CKeyName: string = 'System\Setup';
  CValName: string = 'NetcardDlls';
var
  keyGood: boolean;
  p: integer;
  regKey: TRegistry;
  tmpStr: string;
  vSize: integer;
begin
  regKey := TRegistry.Create;
  try
    regKey.RootKey := HKEY_LOCAL_MACHINE;
    keyGood := regKey.OpenKey(CKeyName, False);

    if (keyGood) then
    begin
      vSize := regKey.GetDataSize(CValName);

      if (vSize > 0) then
      begin
        SetLength(tmpStr, vSize);
        regKey.ReadBinaryData(CValName, tmpstr[1], vSize);

        repeat
          p := Pos(#0, tmpStr);

          if p <> 0 then
          begin
            Delete(tmpStr, p, 1);
            Insert(#13#10, tmpStr, p);
          end;
        until p = 0;

        (*StringReplace(tmpStr, #0, #13#10, [rfReplaceAll]); *)

        ListBox1.Items.Text := tmpStr;
      end;
    end;
  finally
    regKey.Free;
  end;
end;

von den schweizerkollegen

Christian Seehase 26. Apr 2004 21:37

Re: Registry: Binär-Wert auslesen
 
Moin Zusammen,

wobei dem Code ein Reg.CloseKey mit einem weiteren try/finally Block ganz gut täte ;-)

HomerGER 27. Apr 2004 01:08

Re: Registry: Binär-Wert auslesen
 
die schweizer wieder - nur kucksuhren und berge, aber was beenden ... ne ne :mrgreen: :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz