In der JVCL (JvJCLUtils.pas) gibt es eine Helperfunktion:
"ActivatePrevInstance"
Sie aktiviert ein Fenster, falls es dieses schon mal gibt und gibt dann True zurück.
Wir benutzen das, um ein Programm nur einmal auszuführen und es dann zu aktivieren, falls
der Benutzer es nochmals starten will.
Ein Aufruf bei uns ist z.B.:
if ActivatePrevInstance(TfrmObserverMain.ClassName, '') then
Exit;
Das Funktioniert natürlich nur auf dem "aktuellen" Desktop und nicht über Session Grenzen hinaus! Ansonsten würde ich einen
globalen
Mutex/Semaphore benutzen...
wobei TfrmObserverMain das Hauptfenster der Anwendung ist.