Entwickler-Ecke

Dateizugriff - Läuft mein Programm schon?


JacFab - So 13.10.02 00:05
Titel: Läuft mein Programm schon?
Wie bekomme ich heraus, ob mein Programm bereits läuft?
Ich will mein Programm nämlich so einrichten, dass es nur einmal zu starten ist!


DeCodeGuru - So 13.10.02 00:14

such mal im Forum nach FindWindow. Das wurde schon mehrere male durchgesprochen.

Zu der Durchführung:
Wenn das Handle, welches du mit Findwindow bekommst <> 0 ist, dann rufst du einfach Application.Terminate auf und fertisch :wink:


Delete - So 13.10.02 00:21

Eleganter ist es allerdings mit einem Mutex zu arbeiten.


Delete - So 13.10.02 08:41

Ja, und dann auch bitte dafür sorgen, dass die bereits laufende Instanz im Vordergrund erscheint. Eine Fehlermeldung wie "Das Programm kann nur einmal gestartet werden" ist nur die halbe Miete, und wenn gar nichts passiert, ist es auch unschön.


DeCodeGuru - So 13.10.02 10:35

Zitat:
Ja, und dann auch bitte dafür sorgen, dass die bereits laufende Instanz im Vordergrund erscheint. Eine Fehlermeldung wie "Das Programm kann nur einmal gestartet werden" ist nur die halbe Miete, und wenn gar nichts passiert, ist es auch unschön.


Stimmt. :wink:


JacFab - So 13.10.02 12:56

Sehe ich das richtig, dass man mit findwindow einfach nach einem programm sucht, dass die gleiche caption hat?
das würde mir nicht so gefallen, denn, auch wenns unwahrscheinlich ist, es kann immer sein, dass 2 programme die gleiche caption haben...
außerdem find ich das unprofessionell ;)


Delete - So 13.10.02 16:10

JacFab hat folgendes geschrieben:
Sehe ich das richtig, dass man mit findwindow einfach nach einem programm sucht, dass die gleiche caption hat?

Nein, man kann auch nach einem Programm mit einem bestimmten Klassennamen suchen lassen. Das ist sogar sicherer, weil man nicht voraussetzen kann, dass ein bestimmter Text in der Titelzeile steht.

Zitat:
das würde mir nicht so gefallen, denn, auch wenns unwahrscheinlich ist, es kann immer sein, dass 2 programme die gleiche caption haben...

Das ist gar nicht so unwahrscheinlich. Das Problem dürfte allerdings hauptsächlich bei ein und dem selben Programm auftreten, dass mehrfach im System läuft. Unterschiedliche Programme haben evtl. den selben Titelzeilentext, aber mit großer Wahrscheinlichkeit einen anderen Klassennamen.

Zitat:
außerdem find ich das unprofessionell ;)

Das liegt wohl am Entwickler des jeweiligen Programmes.


JacFab - So 13.10.02 16:40

jo die sache mit der caption hatte sich sowieso schon erledigt.
ich habe bei mir jetzt caption und klassenname angegeben!