Benutzer mit den meisten Antworten
Ereignis beim Beenden der Anwendung (nicht der Form!)

Frage
-
Hallo,
ich komme momentan an Folgendem Problem einfach nicht weiter: meine Anwendung platziert nach dem Start ein Icon im Systray. Über dieses kann bei Bedarf das UI aufgerufen werden. Per Druck auf das "X" wird also nicht das Programm beendet, sondern nur die Form verborgen. Das Beenden erfolgt über das Rechtsklick-Menü des Icons.
Beim Herunterfahren von Windows soll die Anwendung nun eine Log-Datei auf die Festplatte schreiben, um beim nächsten Start die letzten Daten noch parat zu haben. Wie kann ich dieses Beenden abfangen, um die Log-Datei vorher schreiben zu können? Kann ich über die WinAPI das Shutdown-Ereignis irgendwie abfangen?
Gruß, Julian
Antworten
-
Hallo,
im FormClosing-Event kannst du den Grund für das Herunterfahren über die Eventargs abrufen:Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing If e.CloseReason = CloseReason.WindowsShutDown Then 'LOG schreiben End If End Sub
Soweit ich weiß wird das ApplicationExit-Event ebenfalls beim Herunterfahren ausgelöst.
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort markiert Salatschüssel Mittwoch, 22. Januar 2014 21:24
Alle Antworten
-
Hallo Julian,
für mich klingt das so, als ob Du das hier suchst:
http://msdn.microsoft.com/de-de/library/system.windows.forms.application.applicationexit.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo,
alternativ kannst du auch im Click-Handler des Kontextmenüs agieren. Also dort, wo du die Anwendung beendest.
Ein Zugriff über die WinAPI sollte nicht nötig sein.
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke. -
Hallo ihr beiden, vielen Dank für den Input!
@Stefan: Das Beispiel hört sich gut an, läuft auch. Jedoch nur, wenn man die Forms per Klick auf das X beendet. Wird der Prozess beendet (z.B. beim Shutdown oder per Taskmanager, wird nichts in die Datei geschrieben. Diesen Punkt benötige ich jedoch!
@Koopakiller: Genau DAS ist leider nicht möglich, denn die Anwendung soll im Normalbetrieb beim Shutdown-Vorgang beendet werden.
- Bearbeitet Salatschüssel Montag, 20. Januar 2014 19:39
-
Hallo,
im FormClosing-Event kannst du den Grund für das Herunterfahren über die Eventargs abrufen:Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing If e.CloseReason = CloseReason.WindowsShutDown Then 'LOG schreiben End If End Sub
Soweit ich weiß wird das ApplicationExit-Event ebenfalls beim Herunterfahren ausgelöst.
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort markiert Salatschüssel Mittwoch, 22. Januar 2014 21:24