Ja, bin ich denn der eingigste bei dem es läuft
Hab es mit einem User und auf dem anderen Rechner mit 4 Usern getestet.
Aber selbst bei 25 sollte es eigentlich gehen.
Hier mal ein bissl Code-Fetzen:
Delphi-Quellcode:
ProgressBar1.Position:=60;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
List.Clear;
if Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',False) then
try
Reg.GetValueNames(List);
if List.Count>0 then
for i:=0 to List.Count-1 do
NewItem(List[i],Reg.ReadString(List[i]),'HKEY_LOCAL_MACHINE');
finally
Reg.CloseKey;
end;
ProgressBar1.Position:=80;
Reg.RootKey:=HKEY_USERS;
List.Clear;
if Reg.OpenKey('',False) then
try
Reg.GetKeyNames(Keys);
Reg.CloseKey;
while Keys.Count>0 do
if Reg.OpenKey(Keys[0]+'\Software\Microsoft\Windows\CurrentVersion\Run',False) then
begin
Reg.GetValueNames(List);
if List.Count>0 then
for i:=0 to List.Count-1 do
NewItem(List[i],Reg.ReadString(List[i]),'HKEY_USERS\'+Keys[0]);
List.Clear;
Keys.Delete(0);
Reg.CloseKey;
end;
finally
Reg.CloseKey;
end;
List und Keys sind StringListen, ansonsten ist das Prinzip bei HKEY_CURRENT_USER und HKEY_CLASSES_ROOT dasselbe wie bei
HKLM,
lediglich bei HKEY_USERS ist es anders, da ja noch die Unterschlüssel einzeln ausgelesen werden.
Und NewItem ist eine Prozedur, die dann den neuen Eintrag zur ListView hinzufügt.
Inkl. einer Funktion die das Icon zum Pfad sucht, die Funktion wird gerade noch verbessert.