2012-09-14 4 views
5

Ich bin interessiert zu wissen, wie Taskplaner eine laufende Aufgabe beendet. Ich habe eine App zu den Task Scheduler Jobs hinzugefügt, und es sieht so aus, als würde ich in Task Scheduler für meinen Job beenden (nach dem Starten aus dem Task Scheduler), wird die Task von Windows gelöscht (WM_QUIT oder WM_CLOSE Nachrichten in meine App). Ich habe auch keine Möglichkeit gefunden zu konfigurieren, wie ich meine Aufgabe im Taskplaner geschlossen werden soll. Mein Ziel ist es, die Nachricht, die vom Taskplaner (falls vorhanden) gesendet wird, zu behandeln und meine App zu schließen.Wie beendet der Taskplaner einen laufenden Job?

Antwort

2

Wahrscheinlich wird der Prozess mit der Windows-Funktion TerminateProcess() abgebrochen. Die Nachrichtenwarteschlange hat damit nichts zu tun. Es gibt keine Möglichkeit, dies zu konfigurieren, und es gibt keine Möglichkeit, TerminateProcess einzufangen.

Wenn Sie über einen längeren Zeitraum hinweg arbeiten müssen, sollten Sie einen echten Windows-Dienst erstellen, anstatt den Taskplaner zu verwenden. Dann erhalten Sie Service Control-Benachrichtigungen, einschließlich Benachrichtigungen zum Herunterfahren, mit denen Sie aufräumen können, bevor Ihr Dienst beendet wird.