Überprüfen ob ein Programm bereits läuft

Darkas

Erfahrenes Mitglied
Hi!

Ich suche nach einer möglichkeit zu überprüfen ob mein Programm bereits läuft und wenn ja, diesem einige Argumente übergeben zu können (ich will dass wenn man auf ein Projekt doppelklickt, das Projekt in ein ggf. bereits geöffnetes Fenster geladen wird). Hat das schonmal jemand gemacht?
 
Hat keiner einen Link zu einem Thread oder Tut oder ähnliches. Ich habe wirklich schon überall gesucht (hier, google, etc.)
 
nein, eben nicht. Ich möchte (bei einem Doppelklick auf eine Datei) meinem Programm sagen, dass hier soeben ein neues Projekt geöffnet wurde, und dieses Projekt dann in mein bereits geöffnetes Programm laden. Kann es sein, dass ich dafür COM Interopatibilität benötige?
 
Oh, Entschuldigung, Ich hab mich komplett verlesen. Man sollte das halt doch nicht zwischen Tür und Angel machen :-(

Mit COM hat das aber nichts zu tun. Interop ist zu dem nur eine "Schnittstelle" zwischen COM und .NET.

Auf jeden Fall musst du dein Programm aber in Windows eintragen, dass bei bestimmten Dateiendungen dein Programm ausgeführt werden soll. Der Pfad zur Datei wird dann als Argument an dein Programm übergeben.
Ggf hilft dir das Thema Mutex weiter, um das Verhalten so zu implementieren, wie du es gern hättest (Suche mal nach Programm nur einmal starten).
Wie implementierst du denn dein Programm? Als SDI- oder MDI-Anwendung?
Bei SDI solltest du dann darauf achten, dass das alte Proejt vorher gespeichert wird, bevor du das neue öffnest. Bei MDI musst du ein neues MDI-Child öffnen.
 
ok, das mit dem Mutex hat soweit funktioniert. Ich weiß auch wie ich das Szenario implementiren will (MDI, und das mit der Registry hab ich auch schonmal gemacht). Allerdings weiß ich noch nicht, wie ich die Argumente an meine Eigentliche Applikation weitergeben soll. Außerdem fällt mir dazu nochwas ein: bei Word (oder bei dem Adobe Reader o.ä.) hat man ja eine Dokumentvorschau im Windows Explorer. Kennst du dazu vielleicht ein Tut auf codeproject?
 
Zurück