AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Registry auslesen GetValueNames + ReadRegBinary

Ein Thema von Landogar-Garuno · begonnen am 5. Jan 2011 · letzter Beitrag vom 5. Jan 2011
Antwort Antwort
Landogar-Garuno

Registriert seit: 22. Feb 2008
36 Beiträge
 
#1

Registry auslesen GetValueNames + ReadRegBinary

  Alt 5. Jan 2011, 17:05
Delphi-Version: 5
Hallo

ersmal ein gesundes neues Jahr

komme hier nicht weiter

hier mein code

Delphi-Quellcode:
var
i: Integer;
sl: TStringlist;
begin
sl := TStringlist.Create;
With TRegistry.Create do begin
RootKey := HKEY_LOCAL_MACHINE;
If OpenKey('\SOFTWARE\COMPANY\EXAMPLE\', false) then begin
  GetValueNames(sl);
  For i := 0 to sl.count -1 do begin
  Application.ProcessMessages;
   memo1.Lines.add(sl[i]);
  end;
  CloseKey;
end;
free;
end;
sl.free;
end;
soweit funzt es auch... bekomme aber ReadRegBinary mit schleife nicht hin

am ende sollte es so im memo oder richedit stehen

example
"10:C75CE85EFD893B746627F867B2A21B12"=hex:01,0C,26 ,59,F6,5C,58,E6,05,63,06,C9,18,97,8F,E0
"10:4EA104BDDF325A93A56916603B790C40"=hex:01,1F,A3 ,B9,83,BD,1C,BD,82,32,EF,B1,99,5D,4E,D8
"10:EA9416075295DAEE39CF8CD30AE5DFA4"=hex:01,3F,C4 ,AB,C2,5A,0E,4F,C6,89,8F,CE,BC,DF,FA,6C
"10:159A58962044AF3D04BDEC2E7813EFFC"=hex:01,AF,38 ,FD,EC,3F,AE,CF,71,41,D3,85,7E,62,A3,26
"10:5437760C404D1327BC920C698E482CFB"=hex:01,F5,39 ,A8,8C,AF,C8,83,A1,3C,82,23,12,24,4F,41
"10:623DE6D6AC2798E3C606C2F80A3AA1BA"=hex:02,1B,7F ,0E,A5,07,C4,6F,5B,4B,7F,13,71,38,CD,8C
"10:A07A5DB20D75F1268758D9B88E9DA3F8"=hex:02,20,3C ,F2,7F,8B,AA,8D,9D,36,04,C3,D7,26,85,F6

jemand von euch ne idee ?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: Registry auslesen GetValueNames + ReadRegBinary

  Alt 5. Jan 2011, 17:31

Delphi-Quellcode:
  For i := 0 to sl.count -1 do begin
  Application.ProcessMessages; // das nimm mal einfach raus, kostet nur unnütz Zeit.
   memo1.Lines.add(sl[i]);
  end;
soweit funzt es auch... bekomme aber ReadRegBinary mit schleife nicht hin
Wo ist denn der Code mit ReadRegBinary?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

AW: Registry auslesen GetValueNames + ReadRegBinary

  Alt 5. Jan 2011, 17:48
Und wieso nicht gleichGetValueNames(Memo1.Lines); Oder sollen die alten Werte erhalten bleiben?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Registry auslesen GetValueNames + ReadRegBinary

  Alt 5. Jan 2011, 17:57
Ich hab jetzt die Hilfe nicht zur Hand, darum stimmt die Syntax bestimmt nicht, aber so ähnlih sollte es gehen:

Delphi-Quellcode:
For i := 0 to sl.count -1 do begin
   if reg.ReadDataType(sl[i])=binary then
     memo1.Lines.add(sl[i]+reg.ReadBinary(sl[i]);
  end;
Die überprüfung des Datentyps muß sein, wenn der nicht stimmt bekommst Du ein paar exceptions um die Ohren gehauen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Landogar-Garuno

Registriert seit: 22. Feb 2008
36 Beiträge
 
#5

AW: Registry auslesen GetValueNames + ReadRegBinary

  Alt 5. Jan 2011, 18:12
benutze diese funktion
Delphi-Quellcode:
function ReadRegBinary(Key: HKEY; Name: string; var Buffer; BufSize: Integer): integer;
var
  DataType: Integer;
  Status: integer;
begin
  result := -1;
  DataType := REG_NONE;
  try
    // return the size of the buffer required
    if BufSize = 0 then begin
    // get data type and buffer size
      Status := RegQueryValueEx(Key, PChar(Name), nil, @DataType, nil, @BufSize);
      if Status = ERROR_SUCCESS then begin
        result := BufSize;
      end;
    end else begin
      // get data
      if RegQueryValueEx(Key, PChar(Name), nil, @DataType, PByte(Buffer),
         @BufSize) = ERROR_SUCCESS then result := BufSize
      else result := -1;
    end;
  except
    result := -1;
  end;
end;
  Mit Zitat antworten Zitat
Landogar-Garuno

Registriert seit: 22. Feb 2008
36 Beiträge
 
#6

AW: Registry auslesen GetValueNames + ReadRegBinary

  Alt 5. Jan 2011, 19:03
@DeddyH danke für den tip funzt

ja sie sollten unverändert bleiben...

10000-35000 Binary Valu müssen verarbeitet werden

sie müssen auch wieder geschrieben werden...und mit RegEdit dauert das ca10min

habe als anhang mal die example.reg eingefügt
Angehängte Dateien
Dateityp: rar Example.rar (814,0 KB, 20x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz