Ja. Wenn du finally durch except ersetzt wird das Registryobjekt nur im Falle eines Fehlers gelöscht.
Versuche es mal so:
Delphi-Quellcode:
begin
Reg := TRegistry.Create;
//try
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
Reg.WriteString('TempCleaner','"' + ParamStr(0) + '" ' + ParamStr(1) + ' "' + ParamStr(2) + '"');
Reg.CloseKey;
except
end;
// finally
Reg.Free;
// end;
end;
So müsste das OK sein.
[edit] Sirius war schneller! [/edit]