Entwickler-Ecke

WinForms - Auf "Prozess beenden" und Herunterfahren reagieren


Vitalic - Mo 12.12.11 11:33
Titel: Auf "Prozess beenden" und Herunterfahren reagieren
Hallo,

ich möchte gerne einen bestimmten Quellcode ausführen, falls meine WindowsForm geschlossen wird.
Wenn die Form durch das X beendet wird, dann kann man ja ohne Probleme über FormClosed() eine Aktion starten.
Das funktioniert jedoch nicht, wenn ich über den Taskmanager meinen Prozess beende.
Die Frage ist nun, ob es möglich ist dies abzufangen? Und wenn ja, dann würde es mich freuen dies zu erfahren.

Danke für die Mühe!

MfG
Vitalic


Th69 - Mo 12.12.11 14:55

Hallo Vitalic,

bei "Prozess beenden" wird der Prozess direkt vom Betriebssystem beendet, d.h. da gibt es keine Möglichkeit dies vom Programm noch abzufangen bzw. informiert zu werden (dies sollte man ja auch nur dann machen, wenn ein Prozess hängt).
Aber bei "Task beenden" sollten die normalen Ereignisse (FormClosed, Application.Exit) ausgeführt werden (und gegebenfalls sogar der Vorgang abgebrochen werden mittels e.Cancel = true).


Vitalic - Mo 12.12.11 16:55

Hallo Th69,

leider funktioniert das nicht mit FormClosed oder FormClosing.
Aber es muss doch eine Möglichkeit geben, denn Microsoft baut diese Funktion z.B. bei MS-Office Produkten ein.
Wenn Word offen ist und man auf herunterfahren klickt, dann reagiert das Programm entsprechend.


MfG

Vitalic


Th69 - Mo 12.12.11 17:09

Ach, du meinst das Herunterfahren.
Dafür gibt es das SystemEvents.SessionEnding sowie SystemEvents.SessionEnded-Ereignis.


Vitalic - Di 13.12.11 10:21

Hallo Th69.

Da man auf Process beenden im Taskmanager nicht richtig reagieren kann, so bleibt mir wenigsten die Möglichkeit beim Harunterfahren des Rechners auf bestimmten Quellcode zu springen. Sicherlich wäre es viel schöner, wenn das anders auch gehen würde.

Ich forsche mal weiter und hoffe auf eine andere Möglichkeit als SystemEvents.SessionEnding oder SystemEvents.SessionEnded zu kommen.

Danke für die Hilfe!

MfG
Vitalic