Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
Delphi 12 Athens
|
Re: Registrierung rekursiv durchsuchen, warum zugriffsverlet
11. Mär 2004, 23:54
Code:
Procedure Registry_durchsuchen(Schluessel, suchen: string);
var i, a: integer;
regkeys: tstringlist;
regvalues: tstringlist;
wert: string;
value: string;
begin
//if pos(uppercase('\System\ControlSet'), uppercase(schluessel)) <> 1 then
//begin
if reg.OpenKey(Schluessel, False) then
begin
regkeys := tstringlist.Create;
try
reg.Access := KEY_EXECUTE;
reg.GetKeyNames(regkeys);
for i:=0 to regkeys.count-1 do
begin
regvalues := tstringlist.create;
try
if reg.OpenKey(IncludeTrailingBackslash(Schluessel)+regkeys.Strings[i], False) then
begin
reg.GetValueNames(regvalues);
for a:=0 to regvalues.count-1 do
begin
if reg.GetDataType(regvalues.Strings[a]) = rdString then
begin
value := reg.ReadString(regvalues.Strings[a]);
if pos(suchen, value) <> 0 then
begin
form1.listbox1.items.Add(IncludeTrailingBackslash(Schluessel)+IncludeTrailingBackslash(regkeys.Strings[i])+'|'+regvalues.strings[a]);
application.ProcessMessages;
end;
end;
end;
end;
finally
regvalues.Free;
end;
[color=red]if (regkeys.Count > i) and (regkeys.Strings[i] > '') then
begin[/color]
wert := IncludeTrailingBackslash(Schluessel)+regkeys.Strings[i];
registry_durchsuchen(wert, suchen);
[color=red]end;[/color]
end;
finally
regkeys.Free;
end;
end;
//end;
end;
$2B or not $2B
|
|
Zitat
|