Frage zu IMessageFilter

Sorry aber irgendwie steh ich aufm Schlauch...
Wie genau soll ich denn das Programm beenden wenn Application.Application.Exit nicht gefeuert wird?

Oder meinst du die Methode Dispose() nutzen?
Oder wie implementieren?

Ich versteh voll net was du meinst :p sorry.
 
Also pass auf, Du hattest doch eben gesagt, dass bei dir dein Application.Exit nicht gefeuert wird und Du anstelle dessen WM_QUERYENDSESSION verwenden willst. Aber dann kann es sein, das der Timer geschlossen wird, auch wenn das beenden der Session von einem Programm verhindert wird.
Daher würde ich den Destruktor der Klasse verwenden, die den Timer verwaltet und darin die Dispose-Implementation aufrufen, die letztendlich den Timer schließt. Somit wird der Timer beendet, wenn alle Objekte des Programms beim Beenden zerstört werden.

//Edit: Ich hoffe ich hab dich jetzt nicht verwirrt. Meine Intension ging dahin, dass Du kein Form mehr brauchst, weil WM_QUERYENDSESSION hier nicht viel bringt. Daher hätt ich im Destrukor deiner TimerKlasse einfach den Timer geschlossen. Wenn Du aber ein MainForm hast, verwendest die Dispose Methode deines MainForms um den Timer ordungsgemäß zu schließen.

Den Link zu dem Dispose Pattern Tutorial von TheCodeProject hast Dir hoffentlich intensiv angeschaut und aufgesaugt. :)

Hab Dir mal eine kleine Demo zu gemacht.
 

Anhänge

  • TimerDisposeDemo.zip
    72,7 KB · Aufrufe: 13
Zuletzt bearbeitet:
Okay, danke vielmals für die Demo und danke vielmals für die Hilfe!

Leider hab ich grad andere Probleme in der Arbeit, werde mir deine Lösung aber mal ansehen und bei gelegenheit noch implementieren.
 

Neue Beiträge

Zurück