Ich will dass nur eine Instanz meiner App läuft. Dazu erzeuge ich einen
Mutex.
MutexHandle := CreateMutex(nil, True, PROGNAME);
Dann überprüfe ich on eine Instanz schon da
Delphi-Quellcode:
if GetLastError = ERROR_ALREADY_EXISTS then
...
und schicke ihr eine Nachricht dass der User das Programm nochmal gestartet hat
Delphi-Quellcode:
SendMessage( HWND_BROADCAST,
MyMsg,
MSG_STARTAGAIN,
0 );
Die alte Instanz emfängt die Nachricht problemlos und kann darauf reagieren (ohne die MessageQueue zu blockieren, es wird nur ein Timer gestartet).
Das ganze mit Delphi 2009 unter Win 7 x64.
Nun passiert aber merkwürdiges. Die neue Instanz hängt dauerhaft bei SendMessage und ich muss den Task mit den Taskmanager beenden.
Hab auch ohne
IDE Log in eine Datei geschrieben und der Code nach SendMessage wird definitiv nicht ausgeführt.
Help!