Hallo zusammen,
ich habe ein Problem beim Einlesen der Schlüssel aus der Registry.
Delphi-Quellcode:
lll:=tstringlist.create;
ll :=tstringlist.create;
reg.rootkey:=$80000000+2; { HKEY_LOCAL_MACHINE }
if reg.openkeyreadonly('') then begin
lll:=tstringlist.create;
reg.getkeynames(lll);
i:=0;
repeat
if reg.openkeyreadonly('\'+lll[i]) then begin
{-- Unterschlüssel holen -----------------}
if reg.hassubkeys then begin
reg.getkeynames(ll);
if ll.Count>0 then
for j:=0 to ll.count-1 do
lll.add(reg.currentpath+'\'+ll[j])
ll.clear;
end;
end;
inc(i,1);
until i=lll.count;
end;
Es gibt einige Schlüssel bei denen reg.getkeynames(ll) leere Strings('') zurück liefert, obwohl Schlüssel vorhanden sind. Sie sind zumindestens in regedit sichtbar.
Die Leseberechtigung ist vorhanden.
Betroffen sind z.B.
SYSTEM\ControlSet003\Control\Class\{8ECC055D-047F-11D1-A537-0000F8753ED1}
SYSTEM\ControlSet003\Control\DeviceClasses\{53f563 0a-b6bf-11d0-94f2-00a0c91efb8b}
SYSTEM\ControlSet003\Control\StillImage\Events\STI ProxyEvent
SYSTEM\ControlSet003\Services\Tcpip\Parameters\DNS RegisteredAdapters
gibt es da einen Workaround oder wisst Ihr worin diese Verhalten begründet ist?
Gruß K-H