AGB  ·  Datenschutz  ·  Impressum  







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

Registry durchsuchen

Ein Thema von Aurelius · begonnen am 20. Mai 2008 · letzter Beitrag vom 15. Feb 2014
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#1

Registry durchsuchen

  Alt 20. Mai 2008, 08:14
Hi DPler

Wie einige von euch vielleicht wissen arbeite ich gerade an einem Registry-Editor. Nun stellt sich mir beim Suchalgorithmus die Frage: Soll der komplette Pfad durchsucht werden (HKCU\...\...\Test) oder nur der Name des Schlüssels (Test)? Mich interessiert mal eure Meinung dazu

Vielleicht könnt ihr auch gleich eure Meinung dazu schreiben: http://www.delphipraxis.net/internal...185&highlight=
Jonas
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Registry durchsuchen

  Alt 20. Mai 2008, 10:35
Nur im Blatt, denn im Pfad hast Du es entweder schon gefunden oder es ist uninteressant (Wenn Du z.B. nur in einem Unterbaum suchen willst).
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#3

Re: Registry durchsuchen

  Alt 20. Mai 2008, 10:52
Das habe ich mir so auch überlegt, aber in vielen anderen Editoren wird ja der komplette Pfad durchsucht. Außerdem soll der Suchalgorithmus auch reg. Ausdrücke unterstützen...
Jonas
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#4

Re: Registry durchsuchen

  Alt 20. Mai 2008, 11:10
Sinnig (und vom User in aller Regel gewünscht) ist: Ab der aktuellen Position rekursiv nach unten durch.
Man wünscht sich aber ggf. eine Option "Alles durchsuchen" zum anhaken, die dann halt oben im Hive anfängt zu suchen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#5

Re: Registry durchsuchen

  Alt 20. Mai 2008, 16:58
das ganze wird schon rekursiv durchsucht. Ich meinte damit ob der gesamte Pfad + Name geprüft werden soll oder nur der eigentl. Name des Schlüssel
Jonas
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Registry durchsuchen

  Alt 20. Mai 2008, 19:18
Hi,

ab dem selektierten Item würde ich alles rekursiv durchsuchen. Angenommen das Item "Software" von "Arbeitsplatz\HKEY_CURRENT_USER\Software\Borland\D elphi" ist markiert, dann würde durch die Rekursion auch der Schlüssel "Borland" und "Delphi" mit dem Suchbegriff verglichen werden.

Der Benutzer sollte natürlich noch die Möglichkeit haben, je nach Auswahl die Schlüssel Werte und Daten extra oder auch kombiniert durchsuchen zu können.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#7

Re: Registry durchsuchen

  Alt 21. Mai 2008, 18:11
Es wird doch rekursiv durchsucht

Beispiel: ich suche nach "Test", es gibt folgenden Schlüssel mit Unterschlüsseln:
HKCU\Software\Test
HKCU\Software\Test\Eins
HKCU\Software\Test\Zwei

Soll es jetzt so sein, dass er
a.) alle 3 "findet", diese also im Gefunden-Fenster angezeigt werden (da ich ja den gesamten Pfad überprüfe)
oder
b.) er nur den 1. Schlüssel auflistet, da dort nur der eigentl. Schlüsselname überprüft wird

Durchsucht werden trotzdem rekursiv alle Schlüssel, keine Frage!
Jonas
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Registry durchsuchen

  Alt 21. Mai 2008, 18:45
Na b, 1 mal reicht doch.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Registry durchsuchen

  Alt 25. Mai 2008, 21:45
Genau, aber eben anzeigen, das 'Test' ein Unterbaum ist.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
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, 15: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
Antwort Antwort
Seite 1 von 2  1 2      


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:10 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