Hallo,
habe eine EXE "B" geschrieben, die den Speicherbedarf anzeigt. Diese EXE "B" hat ein COM Interface (IConnectionPointContainer). Eine weitere EXE "C" benutzt das COM Interface und zeigt den Speicherbedarf auf seiner Oberfläche an. Funktioniert prima. Eine weitere EXE "A" hat die Fähigkeit, die EXE "B" als Datei zu finden und wenn sie noch nicht läuft, zu starten. Die EXE "A" zeigt die Oberfläche von EXE "B" in seiner PageControl. Wenn EXE "A" beendet wird, wird eine WM_CLOSE von "A" an "B" gesendet. Ist COM bei "B" nicht initialisiert, wird "B" beendet, sonst nicht, da EXE "B" ja von COM gestartet wurde. Auch wenn EXE "B" von COM gestartet wurde, findet EXE "A" durch BroadcastSystemMessage EXE "B" die sich bei EXE "A" meldet und sein Fensterhandle mitteilt, damit EXE "A" die Oberfläche einbinden kann.
Problem:
Wird EXE "B" via COM von EXE "C" gestartet, und wird dann EXE "A" gestartet, wird die Oberfläche von EXE "B" prima eingebunden. Wird jetzt allerdings EXE "C" beendet, wird auch EXE "B" beendet und die Oberfäche verschwindet in EXE "A".
Frage:
Wie kann ich verhindern, dass EXE "B" vom COM mechanismus beendet wird? HINWEIS: In EXE "B" ist bekannt, ob EXE "A" läuft.
habe eine EXE "B" geschrieben, die den Speicherbedarf anzeigt. Diese EXE "B" hat ein COM Interface (IConnectionPointContainer). Eine weitere EXE "C" benutzt das COM Interface und zeigt den Speicherbedarf auf seiner Oberfläche an. Funktioniert prima. Eine weitere EXE "A" hat die Fähigkeit, die EXE "B" als Datei zu finden und wenn sie noch nicht läuft, zu starten. Die EXE "A" zeigt die Oberfläche von EXE "B" in seiner PageControl. Wenn EXE "A" beendet wird, wird eine WM_CLOSE von "A" an "B" gesendet. Ist COM bei "B" nicht initialisiert, wird "B" beendet, sonst nicht, da EXE "B" ja von COM gestartet wurde. Auch wenn EXE "B" von COM gestartet wurde, findet EXE "A" durch BroadcastSystemMessage EXE "B" die sich bei EXE "A" meldet und sein Fensterhandle mitteilt, damit EXE "A" die Oberfläche einbinden kann.
Problem:
Wird EXE "B" via COM von EXE "C" gestartet, und wird dann EXE "A" gestartet, wird die Oberfläche von EXE "B" prima eingebunden. Wird jetzt allerdings EXE "C" beendet, wird auch EXE "B" beendet und die Oberfäche verschwindet in EXE "A".
Frage:
Wie kann ich verhindern, dass EXE "B" vom COM mechanismus beendet wird? HINWEIS: In EXE "B" ist bekannt, ob EXE "A" läuft.
Comment