Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
Delphi 5 Standard
|
Re: Code ausführen, bevor Prozess beendet wird
14. Nov 2004, 22:34
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
Dietmar Brüggendiek Die 6 Probleme des Programmierers: 1. dauert das länger, als man 2. glaubt, 3. geht das nicht so, wie man sich das 4. schlau überlegt hat, und 5. sitzt der Fehler da, wo man ihn 6. zuletzt sucht
|