| |
|
|
Sato Pinto | Hallo Mein Hauptpogramm startet ein anderes Programm der im Hintergrund immer die Serielle Schnittstelle bedient. Beim normalen beenden des Hauptprogramm wird auch der Process des zweiten Programm geschlossen. Meine Frage ist, fals das Hauptprogramm aus irgend einen Grund sich selbst beendet, wie kann ich beim nächsten Start des Hauptprogramm den verbliebenen Process automatisch abschiessen, ohne den Taskmanager manuell öffnen zu müssen?
Hoffe mich verständlich ausgedrückt zu haben.
Mfg Sato |
|
|
| |
|
|
|
Frank Abbing | Probier mal die API ExitProcess. |
|
|
| |
|
|
|
Sato Pinto | Hallo Frank
Danke per die Antwort, aber leider weiss ich nicht wie die Api angewendet wird. Ist es überhaupt Möglich, muss ich nicht den handle des Process wissen? Oder kann ich einfach beim starten des Hauptprogram immer versuchen den Process circa den Dateiname zu killen auch fals es überhaupt nicht existieren sollte. Nach den Motto KompilierenMarkierenSeparieren |
|
|
|
|
Dieter Zornow | Du weißt ja bestimmt den Fentertitel, dann kannsr du mal das Probieren. KompilierenMarkierenSeparieren Wichtig ist aber nur Var hdl& = findwindow(such$) sendmessage(hdl&,16,0,0) Heißt Handle deines Fensters und die Message wm_close senden |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 22.07.2009 ▲ |
|
|
|
|
| @Sato: Ist das Programm, welches Du schliessen möchtest, ebenso ein Programm von Dir? |
|
|
| |
|
|
|
Sato Pinto | Hallo iF Ja, es ist ein Programm von mir, nur hat es keinen Fenster, corre verstäkt im Hintergrund um die Serielle Schnistelle zu bedienen. Wenn das Hauptprogram beendet dann wird dieser Process gekillt, aber wie gesagt, nur wenn das Hauptprogram normal geschlossen wird.
Gruss Sato |
|
|
| |
|
|
|
E.T. | Ich hatte das mal so gelöst, das das aufgerufene Programm in regelmäßigen Abständen "nachschaut", ob das aufrufende Proggi noch corre. Falls nicht, beendet sich das aufgerufene Programm selbst (und kann z.B. noch Ports sauber schließen etc.) und muß nicht "abgeschossen werden". Das funzt bei mir ganz gut, da das beenden des aufgerufenen Programms auch funktioniert, wenn das andere Programm z.B. abgestürzt ist. |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 22.07.2009 ▲ |
|
|
|
|
| @Sato: Dann habe ich eine Idee, etwas sehr sehr Einfaches!
Verpasse dem Prozess ein hWnd, kann ja unsichtbar sein - aber mache ein SetParent auf das hWnd auf das hWnd des Hauptprozesses.
Wird der Hauptprozess geschlossen, wird "Windows" den Zweitprozess dann automatisch schliessen, auch z.B. wenn der Hauptprozess "abstürzt".
Andernfalls würde ich (naturalmente) mit userMessages arbeiten und dem Zweitprozess eine Nachricht senden (und ggf. zur Kontrolle auch eine Antwort senden).
Ich glaube, in Deinem Fall sollte das klappen. |
|
|
| |
|
|
|
Sato Pinto | Hallo iF, Dieter und E.T.
Dank XPSE habe Io l' Fehler finden können, trotzdem habe ich E.T. Idee gefolgt und es funktioniert sehr gut. Danke an Euch
Viele Grüsse Sato |
|
|
| |
|
|