Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#10

AW: Registry durchsuchen

  Alt 10. Feb 2014, 14:09
Da ich bislang nirgends im www eine für mich nachvollziehbare Anleitung für das rekursive Duchsuchen der Registry gefunden habe, habe ich mich selbst versucht. Bislang leider ohne Erfolg.

Meine Theorie war die, dass ich ausgehend von den jeweiligen Roots (HKEY_CURRENT_USER etc.) rekursiv nach den Keys mit TRegistry.GetKeyNames(TStringList); suche und diese dann wiederum ebenso abklappere. So einfach scheint es aber nicht zu sein. Jedenfalls funktioniert der folgende Code nicht und ich hoffe, mir kann jemand auf die Sprünge helfen, warum das so ist:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

  Procedure GetSubKeys(Const SubKey: String; aReg: TRegistry);
  Var
    lList : TStringList;
    S : String;
  Begin
    lList:=TStringList.Create;
    Try
      aReg.OpenKeyReadOnly(SubKey);
      aReg.GetKeyNames(lList);
      While (lList.Count > 0) Do
      Begin
        S:=lList.Strings[0];
        ListBox1.Items.Append(S);
        If (SubKey <> '') Then S:=SubKey + '\' + S;
        GetSubKeys(S, aReg);
        lList.Delete(0);
      End;
    Finally
      lList.Free;
    End;
  End;

Var
  lReg : TRegistry;
begin
  lReg:=TRegistry.Create(KEY_READ);
  Try
    lReg.RootKey:=HKEY_CURRENT_USER;
    GetSubKeys('', lReg);
  Finally
    lReg.Free;
  End;
end;
Und Entschuldigung, dass ich das Thema wieder aufwecke. Wenn ich was funktionierendes und übersichtliches hinbekomme, kann das evtl. ja auch mal in die CodeLib???

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat