Reinicie la aplicación Delphi mediante programación
No debería ser posible ejecutar varias instancias de mi aplicación. Por lo tanto, la fuente del proyecto contiene:
CreateMutex (nil, False, PChar (ID));
if (GetLastError = ERROR_ALREADY_EXISTS) then
Halt;
Ahora quiero reiniciar mi aplicación mediante programación. La forma habitual sería:
AppName := PChar(Application.ExeName) ;
ShellExecute(Handle,'open', AppName, nil, nil, SW_SHOWNORMAL) ;
Application.Terminate;
Pero esto no funcionará en mi caso debido al mutex. Incluso si libero el mutex antes de comenzar la segunda instancia, no funcionará porque el apagado lleva algún tiempo y dos instancias no pueden ejecutarse en paralelo (debido a recursos comunes y otros efectos).
¿Hay alguna manera de reiniciar una aplicación con tales características? (Si es posible sin un ejecutable adicional)
Gracias por adelantado.