Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wurde Programm mit dem Taskmanager beendet? (https://www.delphipraxis.net/75117-wurde-programm-mit-dem-taskmanager-beendet.html)

VizeTE 14. Aug 2006 16:33


Wurde Programm mit dem Taskmanager beendet?
 
Hallo,

kann ich im Programm herausfinden ob dieses über den Taskmanager (Prozess beenden) beendet wird?
Ich habe keine Ahnung ob das überhaupt möglich ist da ich nicht weiß wie Windows die Anwendung beendet. Vielleicht gibt es da ja auch eine Message auf die ich warten könnte o.ä.


Gruß
Daniel

Bernhard Geyer 14. Aug 2006 16:40

Re: Wurde Programm mit dem Taskmanager beendet?
 
AFAIK nein. Der Prozess wird AFAIK knallhart beendet.

RavenIV 14. Aug 2006 17:13

Re: Wurde Programm mit dem Taskmanager beendet?
 
Soweit ich weiss, wird der Prozess "abgeschossen".
D.h.: der Prozess wird komplett aus dem Speicher entfernt und sein Prozessraum gelöscht.
(mag vielleicht nicht ganz profihaft ausgedrückt sein)

Deine Software kann also garnicht mitbekommen, dass sie beendet wird und kann also auch nicht darauf reagieren.

tail 14. Aug 2006 17:16

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von Bernhard Geyer
AFAIK nein. Der Prozess wird AFAIK knallhart beendet.

Ist mir auch so bekannt.

malo 14. Aug 2006 17:17

Re: Wurde Programm mit dem Taskmanager beendet?
 
Und ich bin auch sehr froh drum. Man stelle sich nur mal vor, das Beenden des Prozesses wird verhindert. Dann würde ja der "letzte Ausweg" um ein Programm zu beenden, verhindert :shock:

Daniel G 14. Aug 2006 17:51

Re: Wurde Programm mit dem Taskmanager beendet?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wobei mich dann mal interessieren würde, warum es zum Beenden eines Prozesses zwei Möglichkeiten gibt.

mirage228 14. Aug 2006 17:55

Re: Wurde Programm mit dem Taskmanager beendet?
 
Prozesstruktur beenden, beendet imho auch Prozesse, die von dem ausgewählten Prozess gestartet wurde (und der Prozess als Elternprozess eingetragen ist).

mfG
mirage228

Daniel G 14. Aug 2006 17:57

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von mirage228
Prozesstruktur beenden, beendet imho auch Prozesse, die von dem ausgewählten Prozess gestartet wurde (und der Prozess als Elternprozess eingetragen ist).

mfG
mirage228

Hehe... :oops:

Habe ich auch gerade gelesen

Zitat:

---------------------------
Warnung vom Task-Manager
---------------------------
Dieser Vorgang bricht diesen Prozess und alle weiteren
Prozesse ab, die direkt oder indirekt durch den Prozess gestartet wurden.

Die Anwendung zum Schließen zu zwingen, kann zu Datenverlust und Systeminstabilität führen.

Möchten Sie den Vorgang fortsetzen?
---------------------------
Ja Nein
---------------------------

VizeTE 14. Aug 2006 18:10

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von malo
Und ich bin auch sehr froh drum. Man stelle sich nur mal vor, das Beenden des Prozesses wird verhindert. Dann würde ja der "letzte Ausweg" um ein Programm zu beenden, verhindert :shock:

Ich möchte es nicht verhindern. Ich möchte es nur loggen :zwinker:

Luckie 14. Aug 2006 18:20

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von VizeTE
Ich möchte es nicht verhindern. Ich möchte es nur loggen :zwinker:

Und womit man es dann auch verhindern könnte. Nur weil du es nur mitloggen willst, heißt das ja nicht das andere das auch nur wollen.

CK_CK 14. Aug 2006 18:22

Re: Wurde Programm mit dem Taskmanager beendet?
 
Du könntest ja wenn das Programm gestartet wird eine temporäre Datei erzeugen.
Diese wird beim Beenden gelöscht. Wenn die Datei jetzt aber beim nächsten start noch da ist, bedeutet das, dein Programm wurde "abgeschossen" (und konnte die Datei nicht löschen...).

VizeTE 14. Aug 2006 18:31

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von Luckie
Und womit man es dann auch verhindern könnte. Nur weil du es nur mitloggen willst, heißt das ja nicht das andere das auch nur wollen.

Naja es könnte ja so sein, daß man an der Tatsache des Beendens nichts mehr ändern kann. Nur ne Info das das jetzt passiert würde ich mir wünschen. Unter .Net gibts sowas wohl auch, wurde mir zugetragen.

faux 14. Aug 2006 19:28

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von Daniel G
Wobei mich dann mal interessieren würde, warum es zum Beenden eines Prozesses zwei Möglichkeiten gibt.

Lade dir den Process Explorer, da kannst du die Prozesshierachie sehen. ;)

Grüße
Faux

Michael Habbe 14. Aug 2006 19:42

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von malo
Und ich bin auch sehr froh drum. Man stelle sich nur mal vor, das Beenden des Prozesses wird verhindert. Dann würde ja der "letzte Ausweg" um ein Programm zu beenden, verhindert :shock:

Dann möchte ich mal wissen, warum sich manche "aufgehängte" Prozesse nicht per Taskmanager beenden lassen. :gruebel:

Luckie 14. Aug 2006 21:14

Re: Wurde Programm mit dem Taskmanager beendet?
 
Weil du nicht das Recht hast sie zu beenden?

Daniel G 14. Aug 2006 21:34

Re: Wurde Programm mit dem Taskmanager beendet?
 
Warum nicht?

Nehmen wir den FF. Wenn ihm urplötzlich bei meiner alten XP - Installation das Internet weggenommen wurde (Modem abgestürzt), bekam ich ihn nicht mehr geschlossen und musste neu starten. Warum fehlen mir dann zum Beenden des Prozesses mit einmal die Rechte? Immerhin habe ich ihn doch gestartet.

SirThornberry 14. Aug 2006 21:36

Re: Wurde Programm mit dem Taskmanager beendet?
 
vermutlich hängt er dann irgendwo in einer Funktion die mit Betriebssystemfunktionen arbeitet. Wenn du ihn jetzt beendet würdest wäre die entsprechende Schnittstelle mit KO. Dementsprechend darfst du Ihn wohl nicht verwenden weil er noch in der Funktion hängt auf die du aus Benutzerebene kein Zugriff hast. Könnte ich mir zumindest so denken.

Chewie 14. Aug 2006 21:37

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Dann möchte ich mal wissen, warum sich manche "aufgehängte" Prozesse nicht per Taskmanager beenden lassen.
Ab und zu kommts wirklich vor, dass Prozesse sich nicht beenden lassen, obwohl man die Rechte hat (zumindest ist das bei mir ein paar Mal vorgekommen). Es gibt dann aber auch keine Fehlermeldung, sondern der Prozess läuft einfach weiter.
Das waren aber allesamt Situationen, in der das ganze System ohnehin schon sehr instabil und ein Neustart dringend angesagt war.

Michael Habbe 14. Aug 2006 23:19

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von Luckie
Weil du nicht das Recht hast sie zu beenden?

Nene, die Rechte hab ich schon.

Zitat:

Zitat von Chewie
Ab und zu kommts wirklich vor, dass Prozesse sich nicht beenden lassen, obwohl man die Rechte hat (zumindest ist das bei mir ein paar Mal vorgekommen). Es gibt dann aber auch keine Fehlermeldung, sondern der Prozess läuft einfach weiter.
Das waren aber allesamt Situationen, in der das ganze System ohnehin schon sehr instabil und ein Neustart dringend angesagt war.

Win2000:
Ich habe bis vor kurzem mit meinem fünf 1/2 Jahre alten System gearbeitet (P3 1000). In der ganzen Zeit habe ich es einmal :!: neu (rüber-)installiert, weil ich mir die Rechte zerschossen hatte. Das System lief und lief und lief (tut es immer noch, aber man muss ja mal an die alternde Technik denken).
In der ganzen Zeit kam dieses so selten vor, dass ich nicht mal mehr sagen kann, ob es überhaupt mal passierte. :gruebel:

WinXP:
Seit ca. 8 Wochen arbeite ich nun mit einem P4 3 GHz. In dieser kurzen Zeit ist das Problem schon dreimal aufgetaucht. Die Software, die eingesetzt wird, ist fast identisch mit dem alten System.
Man kann sagen, was man will, aber im Vergleich zu Win2000 ist WindowsXP ein totaler Reinfall. :roll:
(Es sind natürlich auch noch einige andere Dinge, dir mich über XP ärgern)

Luckie 14. Aug 2006 23:56

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von Michael Habbe
aber im Vergleich zu Win2000 ist WindowsXP ein totaler Reinfall. :roll:

In deinem Fall vielleicht. Aber man sollte nicht generell Pauchalisieren. Hast du eventuell schon mal daran gedacht, dass du keine passenden Treiber für XP hast?

Aber wie auch immer, diese Diskussion ist hier fehl am Platz.

Metal_Snake2 15. Aug 2006 00:32

Re: Wurde Programm mit dem Taskmanager beendet?
 
Injeziere in den Addresraum vom Taskmanager eine Dll, wo du die Funktion "TerminateProcess" Hookst.
Der Windows Taskmanager arbeitet nämlich nicht mit dem Kernel sonder einfach über die API im Userpsace.

3_of_8 15. Aug 2006 00:35

Re: Wurde Programm mit dem Taskmanager beendet?
 
Ich denke mal das wird ein bissel komplizierter, da ist die Methode mit der temporären Datei schon deutlich einfacher.

Ein Registryeintrag wäre auch noch denkbar.

RavenIV 15. Aug 2006 07:09

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von 3_of_8
Ein Registryeintrag wäre auch noch denkbar.

was finden nur alle an der Registry nur so geil?
beim endgültigen Löschen deines Programmes (de-installieren) wird dieser Registry-Eintrag vergessen und es ist wieder eine Leiche mehr da drin.
Dann also schon lieber ein Eintrag in einem ini-file, das liegt im gleichen Verzeichnis wie die exe und kann dann mitgelöscht werden.

GuenterS 15. Aug 2006 08:35

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von 3_of_8
Ein Registryeintrag wäre auch noch denkbar.

was finden nur alle an der Registry nur so geil?
beim endgültigen Löschen deines Programmes (de-installieren) wird dieser Registry-Eintrag vergessen und es ist wieder eine Leiche mehr da drin.
Dann also schon lieber ein Eintrag in einem ini-file, das liegt im gleichen Verzeichnis wie die exe und kann dann mitgelöscht werden.

Genau dort sollte die InI Datei ja auch nicht liegen müssen, da man sonst ja wohl Schreibrechte auf das Programmverzeichnis braucht, welche man naturgemäß gerne nicht gibt.

faux 15. Aug 2006 09:47

Re: Wurde Programm mit dem Taskmanager beendet?
 
Nein, es gibts manche Programme, da kann man machen was man will und sie schließen sich einfach nicht. Weder mit dem Taskmanager noch mit sonst irgendetwas. Mir fällt leider gerade nur als Beispiel der Camtasia Recorder ein. Wenn man da in die Kameraeinstellungen wechselt, obwohl man keine Kamera angeschlossen hat, ists aus. Da hilft nur noch ein Neustart.

Grüße
Faux

VizeTE 15. Aug 2006 09:59

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von Metal_Snake2
Injeziere in den Addresraum vom Taskmanager eine Dll, wo du die Funktion "TerminateProcess" Hookst.
Der Windows Taskmanager arbeitet nämlich nicht mit dem Kernel sonder einfach über die API im Userpsace.

Das klingt wirklich nach ein wenig zu viel für mein Problem. Aber dennoch weckt das meine Neugier. Gibts da schon irgendwo ein Thread oder eine Beschreibung?

brechi 15. Aug 2006 09:59

Re: Wurde Programm mit dem Taskmanager beendet?
 
Nein da hilft einfach ein Programm was besser als der Taskmanager ist. z.B. IceSword

Michael Habbe 15. Aug 2006 10:10

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von Metal_Snake2
Injeziere in den Addresraum vom Taskmanager eine Dll, wo du die Funktion "TerminateProcess" Hookst.
Der Windows Taskmanager arbeitet nämlich nicht mit dem Kernel sonder einfach über die API im Userpsace.

Da muss es aber was vom Programm her geben, denn der ProcessExplorer von SysInternals kann den Prozess teilweise auch nicht "killen".

3_of_8 15. Aug 2006 10:36

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von 3_of_8
Ein Registryeintrag wäre auch noch denkbar.

was finden nur alle an der Registry nur so geil?
beim endgültigen Löschen deines Programmes (de-installieren) wird dieser Registry-Eintrag vergessen und es ist wieder eine Leiche mehr da drin.
Dann also schon lieber ein Eintrag in einem ini-file, das liegt im gleichen Verzeichnis wie die exe und kann dann mitgelöscht werden.

Uninstaller?

Und mein Gott, was ist denn so schlimm an einem einzigen DWORD-Eintrag?

Metal_Snake2 15. Aug 2006 16:38

Re: Wurde Programm mit dem Taskmanager beendet?
 
Zitat:

Zitat von Michael Habbe
Zitat:

Zitat von Metal_Snake2
Injeziere in den Addresraum vom Taskmanager eine Dll, wo du die Funktion "TerminateProcess" Hookst.
Der Windows Taskmanager arbeitet nämlich nicht mit dem Kernel sonder einfach über die API im Userpsace.

Da muss es aber was vom Programm her geben, denn der ProcessExplorer von SysInternals kann den Prozess teilweise auch nicht "killen".

Dan hast du mit hoher warscheinlichkeit ein "Rootkit" auf deiner Platte oder die Anwendung arbeitet eng mit einem Treiber zusammen.
Den der ProcExp. arbeitet sehr eng mit dem Kernel zusammen.

IceSword macht das auch, jedoch würd ich es nicht wirklich als ein Taskmanager sehen sondern eher als einen Rootkit detector,
villeicht solltest du dir das mal ansehen;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 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