Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi nicht alle Prozesse lassen sich beenden (https://www.delphipraxis.net/61433-nicht-alle-prozesse-lassen-sich-beenden.html)

Ingolf 21. Jan 2006 13:20


nicht alle Prozesse lassen sich beenden
 
Hab schon überall gesucht und einiges gefunden und probiert.
Ich möchte bestimmte laufende Programme einfach "abschiessen". Dazu habe ich schon Routinen gefunden, um laufende Prozesse zu beenden. Bei meinem speziellen Programm, dass ich killen will, geht das nicht, obwohl es im Taskmanager aufgeführt ist. Es steht in der Liste ohne Angabe der Speicherauslastung und etwas nach rechts eingerückt, wie das "wowexec.exe", das manchmal erscheint. Andere Prozesse lassen sich mit den gefundenen Routinen beenden. Mit Routinen wie GetProcessID erhalte ich übrigens für dieser Art Prozesse das Ergebnis "-1". Hat jemand eine Idee, wie solche absonderlichen Prozesse, wie z.B. wowexec.exe aufgelistet und beendet werden können?
Gruß Ingolf

ichbins 21. Jan 2006 13:46

Re: nicht alle Prozesse lassen sich beenden
 
Hallo und willkommen in der Delphi-Praxis!

Wenn du einen Prozess nicht beenden kannst, heisst das normalerweise, das dein Programm und somit der Benutzer, der es ausführt, nicht die nötigen Rechte hat, das Programm zu beenden. Du kannst aber versuchen mit SENDMESSAGE dem Programm eine CloseMessage zukommen zu lassen. Wie genau das geht hab ich jetzt nicht im Kopf, aber die Foren-Suche wird dir bestimmt weiterhelfen:
Hier im Forum suchensendmessageHier im Forum suchenfensterhandle ermitteln

noch ein pseudocode-Schnipsel:
Delphi-Quellcode:
if killprocess(prozess)=-1 then
  sendmessage(fensterhandle,wm_close,0,0);

Luckie 21. Jan 2006 14:53

Re: nicht alle Prozesse lassen sich beenden
 
Du kannst nur Prozesse beenden die auch dir gehören.

Ingolf 21. Jan 2006 18:01

Re: nicht alle Prozesse lassen sich beenden
 
Ich habe Admin-Rechte und das zu killende Programm selbst gestartet.
SENDMESSAGE habe ich auch schon probiert. Hat auch nicht funktioniert.
Was hat es zu bedeuten, wenn Prozesse im Taskmanager etwas nach rechts eingerückt angezeigt werden und keine Speicherauslastung angezeigt wird?
Mit dem Taskmanager lassen sich die Prozesse übrigens ganz normal killen.
Gruß Ingolf

Luckie 21. Jan 2006 18:08

Re: nicht alle Prozesse lassen sich beenden
 
Das sind wohl meist Kind-Prozesse. Guck dir das mal mit dem Prozessexplorer von Sysinternals an: www.sysinternals.com

Ingolf 21. Jan 2006 22:54

Re: nicht alle Prozesse lassen sich beenden
 
Hallo Michael,
habe mir den Prozessexplorer runtergeladen. Aber kurioserweise wird das zu killende Programm auch hier nicht angezeigt.
Wie verhält es sich eigentlich mit Programmen, deren Ursprung Windows 3.11 ist?
Gruß Ingolf

Luckie 22. Jan 2006 02:10

Re: nicht alle Prozesse lassen sich beenden
 
16-Bit Programme sind Child-Prozesse der wow.exe.

Ingolf 22. Jan 2006 18:04

Re: nicht alle Prozesse lassen sich beenden
 
Und wie komme ich an die ran? :gruebel:
Gruß Ingolf


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 Uhr.

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