Ja, aber warum jetzt Windows neu starten? Task killen und neu starten reicht.
Außerdem vermisse ich noch ein
regist.free
damit das ganze auch wieder freigegeben wird, oder machst du das an einer anderen Stelle?
Auch solltest du das ganze dann in einen try...finally Block packen:
Delphi-Quellcode:
regist := TRegistry.create;
with regist do
try
rootkey := HKEY_LOCAL_MACHINE;
OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', true);
writestring('Name des Programms','Pfad der Exe-Datei');
closekey;
finally
free;
end;