Delphi-PRAXiS
Seite 1 von 3  1 23   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   z.B. Taskkill erkennen (https://www.delphipraxis.net/198924-z-b-taskkill-erkennen.html)

ADelph 11. Dez 2018 12:01

z.B. Taskkill erkennen
 
Moin,

ist es irgendwie möglich, in einem Delphi-Programm den Abbruch durch z.B. taskkill zu erkennen? Mir geht es darum z.B. noch 'hängende' Transaktionen etc. sauber beenden zu können, wenn ein Programm aus anderen Gründen hängen sollte und per z.B. Taskmanager 'abgeschossen' werden soll. Kann ich da irgendeine Message abfangen?

Hinweise sind sehr willkommen ;-)

DieDolly 11. Dez 2018 12:03

AW: z.B. Taskkill erkennen
 
Ich würde stetig prüfen, ob der Prozess noch existiert. Wenn nicht, wurde er abgeschossen oder anders beendet.

Schokohase 11. Dez 2018 12:04

AW: z.B. Taskkill erkennen
 
Zitat:

Zitat von ADelph (Beitrag 1420593)
ist es irgendwie möglich, in einem Delphi-Programm den Abbruch durch z.B. taskkill zu erkennen?

Nein. Dem Prozess wird einfach hart der Saft abgedreht.

DieDolly 11. Dez 2018 12:11

AW: z.B. Taskkill erkennen
 
Das Nein war vermutlich darauf bezogen, dass du keine Message bekommst wenn ein Task hart beendet wird.
Aber warum eine Message abfangen wollen, wenn man einfach auf Existenz eines Prozesses prüfen kann.

Ob ein Prozess hängt wird glaube ich schwieriger. Wenn es dein eigenes Programm ist was hängt, gibt es irgendwo nicht behandelte oder richtig behandelte Fehler im Code.

Neutral General 11. Dez 2018 12:29

AW: z.B. Taskkill erkennen
 
Zitat:

Zitat von DieDolly (Beitrag 1420598)
Das Nein war vermutlich darauf bezogen, dass du keine Message bekommst wenn ein Task hart beendet wird.
Aber warum eine Message abfangen wollen, wenn man einfach auf Existenz eines Prozesses prüfen kann.

Ob ein Prozess hängt wird glaube ich schwieriger. Wenn es dein eigenes Programm ist was hängt, gibt es irgendwo nicht behandelte oder richtig behandelte Fehler im Code.

Ich glaube er redet davon IN seinem Programm zu erkennen wenn das Programm selbst abgeschossen wird, nicht ein fremdes Programm.

Die einzige Möglichkeit die mir einfällt, die funktionieren könnte wäre TerminateProcess global zu hooken.
Das ist aber ne größere Aktion.

Ansonsten gilt:
Zitat:

Zitat von https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-terminateprocess
A process cannot prevent itself from being terminated.


ADelph 11. Dez 2018 13:03

AW: z.B. Taskkill erkennen
 
Moin,

danke für die schnellen Antworten!

Ich hatte mir schon gedacht, dass es nicht einfach geht, bzw. gar nicht gehen könnte...schade, wäre nützlich...

sh17 11. Dez 2018 13:11

AW: z.B. Taskkill erkennen
 
Wie machen es die Prozesse, die man nicht killen kann? Laufen die in einem anderen Kontext?

Dalai 11. Dez 2018 15:13

AW: z.B. Taskkill erkennen
 
Zitat:

Zitat von sh17 (Beitrag 1420605)
Wie machen es die Prozesse, die man nicht killen kann? Laufen die in einem anderen Kontext?

Auch Prozesse haben unter Windows Berechtigungen. Kann man sich z.B. mit Process Explorer oder Process Hacker anschauen. Derartige Prozesse setzen die Berechtigungen so, dass ein simples Terminieren nicht so einfach geht. Wie das genau geht, weiß ich allerdings auch nicht; interessiert mich allerdings selbst, wie das geht.

Grüße
Dalai

DieDolly 11. Dez 2018 15:16

AW: z.B. Taskkill erkennen
 
Nur eine Vermutung. Aber warum zerbrichst du dir wegen ein paar Nutzern den Kopf? Wenn die dein Programm per TaskManager abschießen und das Risiko korrupter Daten damit eingehen, ist das deren Problem.

sh17 11. Dez 2018 15:31

AW: z.B. Taskkill erkennen
 
Zitat:

Zitat von DieDolly (Beitrag 1420616)
Nur eine Vermutung. Aber warum zerbrichst du dir wegen ein paar Nutzern den Kopf? Wenn die dein Programm per TaskManager abschießen und das Risiko korrupter Daten damit eingehen, ist das deren Problem.

kann man es beweisen? Die sagen, Daten sind kaputt, sie wissen von nichts.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 Uhr.
Seite 1 von 3  1 23   

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