Hi,
Wie kann man jegliche Art von Message Boxen (die, die bei unbehandelten Ausnahmen hochkommen) eines VC++ Programms deaktivieren. Das Programm soll auf keinen Fall auf einen User Input warten. Wenn es abstürzt, soll es abstürzen. Ein watchdog soll überwachen, ob das Programm läuft. Wenn es nicht läuft, soll der watchdog das Programm starten.
Hat jemand eine Idee dazu?
WinNT, VC++
Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge
die messagebox die bei unbehandelten ausnahmen hochkommen kann man ganz einfach loswerden: man behandelt die ausnahmen. das kann man entweder von fall zufall tun, oder man baut einen try(){} catch( ...) ein.
die sache mit dem watchdog ist ebenfalls relativ einfach: hier auf der site gibts ein beispiel namens kill9x - das sollte eigentlich als vorlage und ausgangspunkt reichen.
WM_HOPETHISHELPS
thomas woelfer
Hi,
Vielen Dank für Deine Anregung.
Hab selbst noch mal gekuckt. Die catch(...) Anweisung sollte normalerweise reichen. Für krasse Fäller (z.B. wenn man einfach ein "throw;" statement irgendow im code plaziert):
Um ganz sicher zu gehen, kann man die Funktionen
"set_unexpected" und "set_terminate" aufrufen (muß für jeden Thread getan werden!) und eine neue Terminierungsroutine festlegen (eine die kein Fenster aufmacht). Allerdings müßte man den allokierten Speicher dort freigeben.
Die "Terminierungsroutinen" enthalten ein "exit(-1);" statement.
Wenn man nun unter Windows (nicht in der Entwicklungsumgebung! - Hier fängt der Debugger alle Exceptions ab!) das Programm startet kommt kein Fenster mehr hoch bei Fehlern...
Fürs überwachen kuck ich noch.
Remote starten irgendwie über DCOM.
Vielen Dank!