Danke für die hilfreichen Tipps, ich werde mich hineinknien. Übrigens funktioniert es mit
Delphi-Quellcode:
// Nun ja ... wenn schon dann bitte mit Self
{form1}Self.Close;
// Da wir aber die Anwendung schließen wollen, müssen wir das HauptFormular schließen, also besser
Application.MainForm.Close;
// wozu das? unnötig!
// application.ProcessMessages;
// Hier jetzt das Handle vom Mutex freigeben
CloseHandle( MyAppMutexHandle );
// Nicht das Application.Handle übergeben sondern 0
ShellExecute(
{Application.Handle} 0, '
open', Pchar(ParamStr(0)),
nil,
nil, sw_SHOWNORMAL);
nicht. Selbst wenn man MyAppMutexHandle (das logischerweise nicht vorhanden ist) durch den eigentlichen
Mutex ersetzt.