Ereignis beim Schließen einer Konsolenanwendung

unmountable

Grünschnabel
Ich hab da mal eine (vielleicht relativ blöde) Frage:

Gibt es ein Ereignis, das beim Schließen einer Konsolenanwendung eintrifft?

Hintergrund: Ich will noch schnell was in ein Log schreiben, bevor die Anwendung geschlossen wird.

Bei Windows Forms gibt das ApplicationExit-Ereignis, das ich für sowas verwenden kann.
Bei Diensten wird sowieso automatisch die Methode OnExit aufgerufen.

Aber irgendwie finde ich da gerade nichts für eine Konsolenanwendung. Oder ich seh den Wald vor lauter Bäumen nicht...

Vielen Dank schon mal...

Gruß!

Sören
 
Ach, ist okay. Ich hab's dann doch selbst gefunden (mit einem freundlichen Hinweis eines Kollegen):

Code:
AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);

Damit geht's.
 
Tja, ich war etwas voreilig. Irgendwie war das dann doch noch nicht die Lösung, jedenfalls nicht ganz.

Das Event tritt nämlich nur ein, wenn die Anwendung ordnungsgemäß beendet wird. Ich würde aber auch gern noch ins Log schreiben, wenn z.B. jemand das Konsolenfenster unter Windows schließt (z.B. durch Klick auf das X). Dann tritt ProcessExit nämlich leider nicht ein.

Vielleicht doch noch jemand eine Idee?
 
Hi unmountable!

Willkommen im Forum!

Das geht soweit ich weiss nicht. Auch wenn Du dafür [post=1108027]IDisposable[/post] implementierst.
(Habs grad nochmal explizit ausprobiert)

Du kannst ja alternativ in der Registry ein Flag setzen,
wenn deine Consolen-Anwendung ordungsgemäß geschlossen wurde
und beim Start darauf reagieren.
Bedenke aber das die Registry kein Sammelpunkt für alle möglichen unnützen Informationen ist.
Wenn diese überquillt wird dein Windows immer langsamer. :eek:
Als Softwareentwickler trägt man auch Verantwortung für,
nach dem Deinstallieren der Software, alles wieder zu entfernen (!)

Oder Du schreibst es in deine App.config. Die kannst wie ein XML behandeln. ;)

MfG, cosmo
 
Hi Norbert!

Das hab ich jetzt ausprobiert. Klappt aber auch nicht :(
Btw. gehts hier auch um eine Consolen-Anwendung. ;)
Das schließen durch das "X" bewirkt hier das Töten des Prozesses,
sodass er keine Chance mehr hat irgend was zu feuern.
 

Neue Beiträge

Zurück