Nach Programmabsturz bleibt Prozess weiterhin bestehen, wie kann man das ändern?
-
Hallo Forum,
wie schon gesagt, wenn mein Programm abstürzt, dann bleibt der eigentliche Prozess weiterhin bestehen. Wie kann man dafür sorgen das dieser Prozess sich selbst beendet wenn kein Dialogfenster mehr zu sehen ist? Kann man da an auf irgendeine Nachricht (NC_Destroy?
) reagieren? Und wenn ja, wo?
-
Woher weißt Du, dass Dein Prozess wirklich abgestürzt ist? Hast Du dasim Debugger mal angesehen?
Hast Du evtl. einen eigenen SetUnhandledExceptionFilter gesetzt?
Wenn kein Filter gesetzt ist wird der Prozess terminiert! Da ist nichts extra zu tun!
-
Ich bekomme manchmal eine Ausnahme (ja das muss ich noch beseitigen
), danach wird der Windowstypische "Report Senden" Dialog angezeigt.Allerdings bleibt der Prozess des Programms bestehen. Ich muss ihn zumindest im Taskmanager extra "killen".
-
Und bist Du sicher, dass dies wirklich Dein Prozess ist?
Hast Du irgendwo __try Blöcke die entsprechende Behandlungen vorsehen?
-
Ja das Programm kann nur einmal gestartet werden. Was die __try Blöcke angeht... Das Programm ist mittlerweile sehr komplex und Fehlerbehandlung in Form von try & catch ist nicht 100% vorhanden.
Ich habe gehofft, das man irgendwie herausfinden kann, ob das Programm abgestürzt ist und ob der Prozess noch im Hintergrund läuft.
-
Grundsätzlich: Tritt in einem Prozess eine unhandled Exception auf dann wird der Prozess terminiert. Wenn er nicht terminiert wird, dann müsstest Du einen eigenen Excfpetion Handler irgendwo haben, oder es wird irgendwo ein eigener Handler installiert.