Hi DPler
Ich wollte mal die Regestry durchscannen und alle Schlüssel mit Value auslesen und in eine Datei schreiben. Mit allen HKEY ist des auch wundervoll gegangen nur nicht mit HKEY_LOCAL_MASCHINE. Ich glaube weil in dem HKEY zu viele Werte stehen und ich auf meine Variante einen Stack überlauf bekomme:
Code:
procedure TForm1.Search_Reg(Root : HKEY; Dir : String; var Liste : TStringList);
var
reg : TRegistry;
List, List2 : TStringList;
I, I2 : Integer;
begin
Application.ProcessMessages;
sleep(0);
Reg := TRegistry.Create;
try
reg.RootKey := Root;
if reg.OpenKey(Dir, false) = false then exit;
List := TStringList.Create;
List2 := TStringList.Create;
reg.GetKeyNames(List);
reg.GetValueNames(List2);
for I := 0 to List.Count-1 do
begin
Liste.Add(Dir+'\'+List[I]);
for I2 := 0 to List2.Count-1 do
begin
Liste.Add(Dir+'\'+List[I]+'\'+List2[I2]{+'='+reg.ReadString(List[I2])});
end;
Search_Reg(Root, Dir+'\'+List[I], Liste);
end;
finally
reg.Free;
end;
end;
Es ist mir klar des es nicht die schönste Variante mit den ganzen fors ist aber ich wüsste ich nicht wie ich es anders machen könnte.
Vieleicht könntet ihr mir auch ein stückchen Code preisgeben.
gsh
[edit=Christian Seehase]Pushen erst nach 24 Stunden Mfg, Christian Seehase[/edit]