Tambien puedes decire al SO que lo borre antes de cargar los Servicios en la siguiente reiniciada:
Código Delphi
[-]var FileName: array [0..MAX_PATH - 1] of Char;
begin
GetModuleFileName(0, @FileName, SizeOf(FileName));
MoveFileEx(@FileName, nil, MOVEFILE_DELAY_UNTIL_REBOOT);
...