Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Delphi Event wenn die Applikation über den Taskmanager gekillt wird (https://www.delphipraxis.net/170591-delphi-event-wenn-die-applikation-ueber-den-taskmanager-gekillt-wird.html)

Digielm 25. Sep 2012 09:02

Delphi-Version: 2009

Delphi Event wenn die Applikation über den Taskmanager gekillt wird
 
Hallo zusammen,

ich habe das kleine Problem das ich das Event auslesen muss wenn eine Applikation über den Taskmanager gekillt wird.
Dort sollen noch einige Dateien gelöscht werden.
Ich habe es mit FormDestoy , FormClose, und auch mit Application.OnShutDown probiert.

leider läuft die Applikation in keine der Event rein.

Kann mir da jemand helfen ??

Danke im Voraus

DeddyH 25. Sep 2012 09:06

AW: Delphi Event wenn die Applikation über den Taskmanager gekillt wird
 
Wenn man ein Programm über den Taskmanager abschießt, dann ja im Normalfall deshalb, weil es nicht mehr reagiert. Es wird damit "hart" beendet (TerminateProcess IIRC) und hat somit keine Gelegenheit mehr, noch etwas abzuarbeiten. Daher ist zumindest mir keine Möglichkeit bekannt, Dein Vorhaben umzusetzen.

Bernhard Geyer 25. Sep 2012 09:12

AW: Delphi Event wenn die Applikation über den Taskmanager gekillt wird
 
Keine Chance wenn die Anwendung "gekillt" wird.

Du müsstest es, ähnlich wie manche einfachen Würmer/Viren machen, eine Überwachungs-App mitlaufen lassen die dann in einem solchen Fall alle Aufräumarbeiten durchführt.

Dalai 25. Sep 2012 09:13

AW: Delphi Event wenn die Applikation über den Taskmanager gekillt wird
 
Du willst ein Event behandeln, wenn der Prozess deiner eigenen Anwendung gekillt wird? Ich glaube kaum, dass du irgendetwas in dieser Richtung erreichen kannst, denn überleg mal: Was könnte eine Anwendung noch machen, wenn sie auf ein solches Event reagiert? Zum Beispiel das Killen verzögern oder gar unterbinden/verhindern, und genau das kann nicht im Sinne des Nutzers sein, denn der hat normalerweise einen Grund, den Prozess töten zu wollen.

Räume die zu löschenden Dateien lieber beim (nächsten) Start deiner Anwendung weg, und sorge vor allem dafür, dass der Nutzer erst gar keinen Grund hat, den Prozess zu töten (dann stellt sich das Problem gar nicht).

Und auch wenn es Möglichkeiten gibt, Prozesse so zu erstellen, dass sie nicht abgeschossen werden können, halte ich das für eine ganz schlechte Idee, die nur in ganz seltenen Fällen umgesetzt werden sollte.

MfG Dalai

BUG 25. Sep 2012 09:19

AW: Delphi Event wenn die Applikation über den Taskmanager gekillt wird
 
Die einzige Möglichkeit, die ich sehe, wäre einen zweiten Prozess (Watchdog) am Laufen zu haben, der bei Bedarf (Hauptprozess abgeschossen) die Dateien löscht.

Ich würde es aber vorziehen, das unsaubere Beenden beim erneuten Start des Programmes zu erkennen und dann aufzuräumen.
Mit etwas mehr Details zu deinem eigentlichen Problem würde sich bestimmt eine "schönere" Lösung finden.

PS: Ja, ich hab die rote Box gesehen.

himitsu 25. Sep 2012 09:28

AW: Delphi Event wenn die Applikation über den Taskmanager gekillt wird
 
Stell es dir so vor:

Jemand zieht den Stecker des Computers.
Kann dann dein Programm darauf reagieren und noch etwas machen?

Mach es z.B. beim nächsten Start des Programms.


Aber wieso sollte jemand auf die Idee kommen dein Programm abschießen zu wollen?
Wer sowas tut, der soll sich nicht wundern, wenn etwas zurückbleibt. :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz