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.