Einzelnen Beitrag anzeigen

Schwedenbitter

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

AW: (TRegistry) Sinn von CurrentKey

  Alt 11. Feb 2014, 15:52
Ich muss mich hier mal einklinken und das Thema wieder aufmachen. Denn man gelangt hierhin, wenn man CurrentKey und/oder CurrentPath in der Suche eingibt:

Weiter oben wurde    property CurrentPath: string read FCurrentPath; schon angesprochen. Bei einem von mir verwendeten Code (Siehe das Thema hier) ist CurrentPath aber immer leer. Der Code-Schnipsel dazu sieht wie folgt aus:
Delphi-Quellcode:
Procedure TMainForm.SearchReg;
Var
   SearchStr   : String;

   Procedure EnumAllKeys(hkey: THandle);
   Var
      l         : TStringList;
      n         : Integer;
      S         : String;
   Begin
      With TRegistry.Create Do
      Try
         RootKey:=hkey;
         OpenKeyReadOnly(EmptyStr);
         l:=TStringList.Create;
         Try
            GetKeynames(l);
            CloseKey;
            For n:=0 To Pred(l.Count) Do
            Begin
               S:=l[n];
               If Pos(SearchStr, UpperCase(S)) > 0 Then
                  LBRegistry.Items.Append(CurrentPath + '#'); // Warum ist das leer???
               If OpenKeyReadOnly(S) Then
               Begin
                  EnumAllKeys(CurrentKey);
                  CloseKey;
               End;
            End;
         Finally
            l.Free
         End;
      Finally
         Free;
      End;
   End;

Begin
   SearchStr:=UpperCase(EDSearch.Text);
   LBRegistry.Items.Clear;
   LBRegistry.Items.BeginUpdate;
   Try
//   EnumAllKeys(HKEY_CLASSES_ROOT );
//   EnumAllKEys(HKEY_CURRENT_USER );
      EnumAllKEys(HKEY_LOCAL_MACHINE );
//   EnumAllKEys(HKEY_USERS );
//   EnumAllKEys(HKEY_PERFORMANCE_DATA);
//   EnumAllKEys(HKEY_CURRENT_CONFIG );
//   EnumAllKEys(HKEY_DYN_DATA );
   Finally
      LBRegistry.Items.EndUpdate;
   End;
End;
Was an meiner Code-Variante ist falsch?

[edit]
Es scheint ein Problem mit CurrentPath zu geben. Anders lässt sich nicht erklären, warum z.B. in diesem Code der jeweilige Pfad durchgereicht und in KeyName_ zwischengespeichert wird.
Ich wäre für Erhellung trotzdem dankbar.
[/edit]

Gruß, Alex
Alex Winzer

Geändert von Schwedenbitter (11. Feb 2014 um 17:11 Uhr)
  Mit Zitat antworten Zitat