Autor Beitrag
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Do 28.07.05 08:15 
Hallo allesamt!

Ich habe eine Anwendung, die zu verschiedenen Zeiten nacheinander andere Anwendungen startet, auf deren Beendigung wartet und anschliessend die nächste Applikation in der Liste startet. Ist die Liste der Anwendungen durch, wird 5 Minuten gewartet, und die Liste wird wieder durchgeackert.

Nun kommt es manchmal zu dem Phänomen, daß Programme ganz brutal abstürzen, es kommt eine Meldung "XXX hat einen Fehler verursacht und muß geschlossen werden". Ich habe bis jetzt nicht herausfinden können, wieso das so ist (evtl. hat es was mit Rave Reports zu tun=, aber das ist halb so wild, das nächste Mal funktioniert´s meist wieder. Diese Meldung blockiert nun aber den weiteren Ablauf der Listenabarbeitung, man muß die Meldung manuell wegklicken.

Ich habe bereits probiert, eine Art Timeout zu verwenden und den Prozess der fehlerhaften Anwendung mit TerminateProcess zu beenden, aber anscheinend ist dieser API-Aufruf blockiert, wenn die genannte Meldung zu sehen ist.

Wie kann ich diese Meldung unterdrücken oder sie automatisch aus meiner Hauptanwendung heraus wegklicken?

Cu,
Udontknow
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 28.07.05 08:22 
Bist du sicher, dass du dem richtigen Prozess das Terminate schickst? Ich meine, dass in der Prozessliste für die Anwendung im Fehlerfall zwei Prozesse existieren. :gruebel:
Testen kann ich das gerade nicht. Meine Programme laufen alle sauber. :lol:
Udontknow Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Do 28.07.05 08:33 
Ja, ich bin sicher.

Durch CreateProcess bekomme ich ja die Prozess-ID mitgeteilt, und die wird eben auch für das TerminateProcess verwendet.
Wenn dieser "Fehler" nicht auftritt, können die Programme auch ohne Probleme per TerminateProcess beendet werden.

Cu,
Udontknow
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 28.07.05 08:52 
Und wenn du versuchst die ProcessID der Fehlermeldung zu finden und den zu beenden?
Udontknow Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Do 28.07.05 09:49 
Hat sich gerade erledigt. Ich war zu dumm, meiner Prozedur einen Timeout zu übergeben, also hat die Prozedur auch keinen Abbruch veranlasst. Beim Testen der Prozedur hatte ich´s gemacht ... :mrgreen: :oops:

Trotzdem danke für die Hilfe.

Die Meldung steht zwar dann noch immer auf dem Schirm, aber der Haupttask läuft weiter. Also nur noch ein Schönheitsfehler, den ich wahrscheinlich gleich per FindWindow auch eliminieren kann...

Cu,
Udontknow