Aiun Geschrieben 25. Juni 2008 Teilen Geschrieben 25. Juni 2008 hi, die frage ist etwas allgemeiner, aber da es mir im Moment im wesentlichen um einen Windows-Umgebung geht habe ich es mal hier plaziert. Welche Möglichkeiten gibt es, dafür zu sorgen das eine Anwendung nur 1x gestartet wird, jeder weitere Start wird an die laufende instanz geleitet und dann z.B. als Tab/unterdialog verarbeitet. also "wie machen das andere Anwendungen, Firefox, Outlook......." ? (auch nicht-MS Anwendungen) Idee 1, Anwendung lauscht auf einem Port, und falls ein Prozess existiert wird an diesen Port eine nachricht gesendet, aber welcher Port wird da gemeinhin genutzt und wie wir dafür gesorgt das sich die Anwendungen nicht gegenseitig blockieren ? Idee 2, irgend eine Systemschnittstelle, aber was gibts da und wie kann ich das in java o. vb.net nutzen ? andere ideen/möglichkeiten ? Und dann die herausforderung: sagen wir ich habe 2 Exe-Dateien, die eine Startet eine neue Instanz, die zweite soll an die jeweils ältere oder neuere gehen (theoretisch sollte beides möglich sein) danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 25. Juni 2008 Teilen Geschrieben 25. Juni 2008 Du kannst doch in den Prozessen nachschauen, ob die exe selbst schon ausgeführt wird, wenn ja, dann wird der Prozess halt aktiviert. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 25. Juni 2008 Teilen Geschrieben 25. Juni 2008 Systemweiter Mutex / Named Pipe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 25. Juni 2008 Teilen Geschrieben 25. Juni 2008 Systemweiter Mutex Sowas?: "Globaler" Singleton in C# Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 25. Juni 2008 Teilen Geschrieben 25. Juni 2008 Nein einfach beim Starten der Anwendung einen Mutex mit einem eindeutigen Namen erstellen bzw. prüfen ob dieser bereits existiert. Wenn er schon existiert läuft die Anwendung schon. Mutex Class (System.Threading) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 25. Juni 2008 Autor Teilen Geschrieben 25. Juni 2008 (bearbeitet) aaaaaber wie kann ich an den existierenden Prozess Informationen übertragen ? und gehe ich richtig in der annahme das ich nicht herausfinden kann wie ich z.B. einen Firefox, Thunderbird, Outlook Prozess ansteuern kann ? danke Bearbeitet 25. Juni 2008 von Aiun Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Argbeil Geschrieben 26. Juni 2008 Teilen Geschrieben 26. Juni 2008 Du könntest neben dem Mutex auch einfach ein FindWindow machen oder nach dem Prozess suchen. Mutex ist aber besser. Zur Interprozesskommunikation nimmt man üblicherweise WCF mit Named Pipes Binding (Benannten Röhren...komischer Name) oder TCP/IP. Übrigens merkt Firefox oder IE nicht wenn bereits eine andere Instanz läuft. Mit Strg+N machen die einfach ein neues Fenster auf, das ist aber alles nur 1 Prozess. Deswegen schmieren dir auch alle Browser-fenster ab wenn nur eine Seite zum Absturz führt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.