Autor Beitrag
Vitalic
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 68



BeitragVerfasst: Mo 12.12.11 11:33 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 68



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 12.12.11 17:09 
Ach, du meinst das Herunterfahren.
Dafür gibt es das SystemEvents.SessionEnding sowie SystemEvents.SessionEnded-Ereignis.
Vitalic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 68



BeitragVerfasst: 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