![]() |
Code ausführen, bevor Prozess beendet wird
Hallo,
gibt es eine Möglichkeit, Code auszuführen, noch nachdem der WindowsXP-Anwender in seinem Taskmanager auf "Prozess beenden" geklickt hat? Wird irgendeine Message geschickt o.Ä? (Mein Programm läuft mich ShowMainForm := false;) Ich meine nicht WM_ENDSESSION oder WM_QUERYENDSESSION, denn diese werden nur beim Herunterfahren/Abmelden verschickt. Doch was, wenn der Benutzer das Proggi gewaltsam abschießt, ich aber vorher noch dringend Daten speichern muss? |
Re: Code ausführen, bevor Prozess beendet wird
Wie du gesagt hast, wird das Programm "abgeschossen". Das heisst: Es wird einfach aus dem Speicher entladen, soweit möglich. Damit nimmt Windows deinem Programm jegliche Möglichkeit zu reagieren.
|
Re: Code ausführen, bevor Prozess beendet wird
Ich hatte darauf spekuliert, dass Windows dem Prozess vielleicht eine Art "last Chance" anbietet, indem es eine Message sendet und noch ne Sekunde wartet, bis es den Prozess beendet. So etwas gibt es also nicht?
|
Re: Code ausführen, bevor Prozess beendet wird
Hi Elite,
Zitat:
Greetz alcaeus |
Re: Code ausführen, bevor Prozess beendet wird
Hallo!
Beim Abschießen eines Tasks per Task-Manager wird zuerst eine WM_CLOSE-Nachricht an das Programm gesendet. Das Programm reagiert (wenn es noch reagiert!) darauf mit der Abarbeitung des Program-Ende-Codes. Das ist derselbe, der auch beim Schließen des Programms über Menü oder Schließkreuz abgearbeitet wird. Reagiert das Programmm darauf nicht, wird es "hart" beendet, d.h. aus dem Speicher geworfen. Meine Programme fragen in der Regel nach, ob sie wirklich beendet werden sollen. Die Frage kommt auch beim Beenden per Task-Manager. Die im "OnCloseQuery" eingetragene Routine wird also noch abgearbeitet. Ein Problem gibt es nur, wenn das Programm (Haupt-Thread) "hängt" - dann geht nichts mehr. Außerdem sollte das schnell gehen, sonst kommt die Frage "Reagiert nicht" und damit kann man wirklich alles abwürgen. Gruß Dietmar Brüggendiek |
Re: Code ausführen, bevor Prozess beendet wird
Zitat:
|
Re: Code ausführen, bevor Prozess beendet wird
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz