Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#6

Re: Fehler beim Auslesen der Registry

  Alt 13. Okt 2008, 12:17
Hallo,

habe mal ein bisserl gedaddelt und hatte ursprünglich das gleiche Ergebnis wie Du.
Habe den Quelltext daher mal verändert:
Delphi-Quellcode:
lll:=tstringlist.create;
ll :=tstringlist.create;
reg := TRegistry.Create;
reg2 := TRegistry.Create;
reg.rootkey:=$80000000+2; { HKEY_LOCAL_MACHINE }
reg2.rootkey:=$80000000+2; { HKEY_LOCAL_MACHINE }
sKey := 'SYSTEM\ControlSet003\Control\DeviceClasses\{53f5630a-b6bf-11d0-94f2-00a0c91efb8b}';
if reg.openkeyreadonly(sKey) then begin
  reg.getkeynames(lll);
  i:=0;
  repeat
    if reg2.openkey(sKey + '\' + lll[i],false) then begin
      {-- Unterschlüssel holen -----------------}
      if reg2.hassubkeys then begin
        reg2.getkeynames(ll);
        if ll.Count>0 then
          for j:=0 to ll.count-1 do
            lll.add(reg2.currentpath+'\'+ll[j]);
        ll.clear;
      end;
      reg2.CloseKey;
    end;
    inc(i,1);
  until i=lll.count;
end;
Damit scheine ich in jeden Unterschlüssel hineinzukommen, hilft Dir das?

Sauber ist es nicht, zuweilen überschreitet das irgendwo einen Listenindex.
Was mich wundert: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Control\St illImage\Debug bekomme ich nicht zu sehen. Hier vermute ich mal, dass da ein Rechteproblem vorliegen könnte. Nachdem ich bei diesem Zweig Jeder Zugriff gegeben habe, komme ich zwar nicht in den Zweig hinein, aber die obige Routine geht "wenigstens in eine Endlosschleife".
Nach 'nem Neustart des Programmes werden auch die Schlüssel unterhalb von Debug angezeigt.
  Mit Zitat antworten Zitat