Entwickler-Ecke

Windows API - Windows-Message für das Beenden eines Prozesses durch den TM


scrooge - So 28.12.03 19:36
Titel: Windows-Message für das Beenden eines Prozesses durch den TM
Hi,

die Frage hier bezieht sich eigentlich auf eine andere in der Datei-Zugriff-Sparte. Wollte fragen, ob es eine Windows-Message gibt die ausgegeben wird, wenn ein Prozess durch den TaskManager gekillt wird (oder besser: Nachricht, wenn Prozess im Allgemeinen , wodurch auch immer, beendet wird).


Andreas Pfau - Di 30.12.03 20:57

Hallo,

schau mal inder Onlinehilfe/PSDK unter "WM_ENDSESSION" und "WM_QUERYENDSESSION" nach.


Delete - Mi 31.12.03 09:25

Wie ist euer Englisch, Jungs?
PSDK hat folgendes geschrieben:
The WM_QUERYENDSESSION message is sent when the user chooses to end the session or when an application calls the ExitWindows function. If any application returns zero, the session is not ended. The system stops sending WM_QUERYENDSESSION messages as soon as one application returns zero.

After processing this message, the system sends the WM_ENDSESSION message with the wParam parameter set to the results of the WM_QUERYENDSESSION message.

Soll heißen: Ich glaube nicht, dass WM_ENDSESSION bzw. WM_QUERYENDSESSION die richtige Antwort ist.


Andreas Pfau - Mi 31.12.03 16:52

Hallo,

ich kann englisch... anscheinen habe ich @scrooge nicht verstanden... Also, er will doch eine Message, wenn Windows beendet wird? WM_ENDSESSION ist die einzige, die man bei "System Shutdown Messages" findet... Na ja, war ja nur so ein Tipp...


Delete - Mi 31.12.03 18:49
Titel: Re: Windows-Message für das Beenden eines Prozesses durch de
Nix für ungut, Andreas, aber dann scheint Deutsch dein Problem zu sein. ;)
Ich lese:
scrooge hat folgendes geschrieben:
Wollte fragen, ob es eine Windows-Message gibt die ausgegeben wird, wenn ein Prozess durch den TaskManager gekillt wird (oder besser: Nachricht, wenn Prozess im Allgemeinen , wodurch auch immer, beendet wird).

Vom Beenden von Windows war nicht die Rede.


Andreas Pfau - Mi 31.12.03 20:59

Hallo,

:oops: hast Recht... nennt man PMIGBOM... sorry.

Habe das dann mal mit Winsight überprüft. Es kommen:
WM_CLOSE
WM_WINDOWPOSCHANGING
WM_GETTEXT
WM_WINDOWPOSCHANGED
WM_DESTROY
WM_NCDESTROY
Hilft wohl wenig weiter... Na ja, spiel mal einwenig mit WinSight rum, villeicht gibts da ja andere Parameter wenn man den Taskam nimmt...


w3seek - Mi 31.12.03 22:50

falsch, es werden gar keine messages gesendet! Der Prozess wird einfach terminiert.


Andreas Pfau - Mi 31.12.03 22:56

Hallo,

ich dachte halt, villeicht ändert sich einer der parameter... kann das sein???


matze - Mi 31.12.03 23:23

wo gibts denn WinSight ??


Andreas Pfau - Mi 31.12.03 23:25

Hallo,

ist bei Delphi dabei (zumindest bei 6 und 7?). Im Startmenü bei Delphi!


matze - Do 01.01.04 13:08

ah ja. danke !


w3seek - Do 01.01.04 13:40

Andreas Pfau hat folgendes geschrieben:
ich dachte halt, villeicht ändert sich einer der parameter... kann das sein???


darf ich fragen von was du redest?


Motzi - Do 01.01.04 15:19

w3seek hat folgendes geschrieben:
falsch, es werden gar keine messages gesendet! Der Prozess wird einfach terminiert.

Nein... es wird zuerst eine Message geschickt, und wenn innerhalb eines bestimmten Zeitraumes das Programm nicht auf diese Message reagiert und sich beendet betrachtet Windows diesen Prozess als "nicht reagierend" und beendet ihn. Es ist aber natürlich was anderes ob du das Programm über "Anwendungen" oder "Prozesse" beendest. Bei Prozessen wird der Prozess gleich mit TerminateProcess "abgeschossen", das ist richtig...


Andreas Pfau - Do 01.01.04 15:32

Hallo,

@w3seek, ich meinte, dass villeicht einer der Parameter der MEssages, die beimbeenden gesendet werden, anders ist, wenn das Programm vom TM aus beendet wird... Nur so eine flüchtige idee.


scrooge - Fr 02.01.04 16:42

Habs noch nie ausprobiert, aber ich schätze mal, dass der Task-Manager das direkt anzeigt, sobald ein Prozess, wie auch immer, beendet wird. Wenn ja, müsste der ja auch irgendwoher die Info bekommen haben ?!


Motzi - Fr 02.01.04 16:50

scrooge hat folgendes geschrieben:
Habs noch nie ausprobiert, aber ich schätze mal, dass der Task-Manager das direkt anzeigt, sobald ein Prozess, wie auch immer, beendet wird. Wenn ja, müsste der ja auch irgendwoher die Info bekommen haben ?!

Der Taskmanager aktualisiert sich in regelmäßigen Zeitintervallen, sonst könnte er ja auch nicht immer die jeweils aktuelle CPU-Auslastung und Prozesszeiten anzeigen...