Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Taskmanager verweigert das Beenden vom Prozess (https://www.delphipraxis.net/174914-taskmanager-verweigert-das-beenden-vom-prozess.html)

vit4l 17. Mai 2013 16:20

Taskmanager verweigert das Beenden vom Prozess
 
Hallo Zusammen,

möchte gerne über den Taskmanager den Prozess meiner in Delphi erstellten Anwendung beenden bekomme aber manchmal folgende Fehlermeldung: Der Vorgang konnte nicht beendet werden. Zugriff verweigert. Kennt jemand eine Lösung wäre sehr dankbar für ein Tipp.

Der schöne Günther 17. Mai 2013 16:44

AW: Taskmanager verweigert das Beenden vom Prozess
 
Wurde die Anwendung normal oder über die IDE als Debugger gestartet? Im letzen Fall erlebe ich auch manchmal komische Eigenheiten, insbesondere was Kindprozesse des Delphi-Programms angeht

vit4l 17. Mai 2013 17:05

AW: Taskmanager verweigert das Beenden vom Prozess
 
´Ganz normal nicht im Debug.

Aviator 17. Mai 2013 20:58

AW: Taskmanager verweigert das Beenden vom Prozess
 
Ist das Benutzerkonto mit dem du dich anmeldest möglicherweise ein eingeschränktes Kontound die Exe wird mit Adminrechten ausgeführt? Wenn das so sein sollte, dann starte den Taskmanager mal als Admin. Einfach bei der Prozessliste auf "Prozesse aller Benutzer anzeigen" klicken und dann mal versuchen das Programm zu killen. Vielleicht liegt es ja daran.

Furtbichler 18. Mai 2013 06:43

AW: Taskmanager verweigert das Beenden vom Prozess
 
Das Problem tritt z.B. auch dann auf, wenn eine DLL, die Du verwendest, einen Fehler hat und beim Entladen/Finalize nicht richtig terminiert. Dann kann Windows den Prozess nicht killen.

Ich kenne das Problem jedenfalls nur in Zusammenhang mit DLL und muss dann zu ziemlich drastischen Mitteln greifen (Benutzer abmelden).

jaenicke 18. Mai 2013 07:23

AW: Taskmanager verweigert das Beenden vom Prozess
 
Zitat:

Zitat von Furtbichler (Beitrag 1215702)
Ich kenne das Problem jedenfalls nur in Zusammenhang mit DLL und muss dann zu ziemlich drastischen Mitteln greifen (Benutzer abmelden).

Solche Probleme hatte ich auch, aber hauptsächlich bei XP. Seit Vista/7 kam das nur noch bei einem speziellen Programm manchmal vor, und seit dem Upgrade auf Windows 8 auch dort nicht mehr. Insofern scheint sich da auch einiges weiterentwickelt zu haben.

Furtbichler 18. Mai 2013 07:25

AW: Taskmanager verweigert das Beenden vom Prozess
 
Stimmt. XP.

baumina 21. Mai 2013 06:43

AW: Taskmanager verweigert das Beenden vom Prozess
 
Wurde das Programm über die IDE gestartet (F9), dann immer übers Delphi abbrechen (Strg+F2), über Taskmanager geht das dann nicht.

romber 14. Jun 2013 12:15

AW: Taskmanager verweigert das Beenden vom Prozess
 
Besteht die Möglichkeit herauszufinden, womit der Prozess noch beschäftigt ist, solange er sich nicht killen lässt?

Der schöne Günther 14. Jun 2013 12:35

AW: Taskmanager verweigert das Beenden vom Prozess
 
Ich glaube nicht im geringsten. Man könnte (z.B. mit dem "Process Explorer") schauen, welche Dateien oder andere Handles er so offen hat und versuchen Rückschlüsse zu ziehen, aber was er macht (ob er überhaupt "beschäftigt" ist), nicht.

nahpets 14. Jun 2013 13:21

AW: Taskmanager verweigert das Beenden vom Prozess
 
Zitat:

Zitat von romber (Beitrag 1218601)
Besteht die Möglichkeit herauszufinden, womit der Prozess noch beschäftigt ist, solange er sich nicht killen lässt?

Die Antwort heißt ganz klar Jein, ein entschiedenes "Sowohl als auch". Aber eigentlich nicht wirklich.

Taskmanager oder Processexplorer (dieser bietet mehr Möglichkeiten, anzeigen von Abhängigkeiten...).

Wie ist die CPU-Last?
100% -> vermutlich irgendwo eine Endlosschleife.
000% -> Das Programm tut nichts, ggfls. wartet es auf irgendwas. (Timeout einer Komponente, eines Netzzugriffes...)
Ändert sich die Speichernutzung?
Steigt sie? Es wird irgendwo Speicher reserviert.
Sinkt sie, es wird etwas freigegeben.

Ändert sich die Nutzung des virtuellen Speichers?
Steigt? Auslagerungsdatei könnte der Flaschenhals sein. (Speicherleck? ...)
Sinkt? Es wird Speicher freigegeben, auch hier könnte die Auslagerungsdatei der Flaschenhals sein.

Natürlich kann es ein Rechteproblem sein. Man darf nicht killen.

Wieviel Handles? Ändert sich die Anzahl?
Wieviel Threads? Ändert sich die Anzahl?
Ändert sich die Anzahl der Seitenfehler? Dann lebt das Programm irgendwie noch, da noch auf den Speicher zugegriffen wird.

Das sind alles mögliche (aber sicherlich nicht alle) Indizien, mit denen Du letztlich aufgrund Deiner Programmkenntnisse versuchen müsstest, die problematische(n) Stelle(en) zu finden.

Konkrete Informationen wirst Du kaum bekommen.
Ahnst Du, wo in Deinem Programm der Fehler sein könnte?
Dann dort eine Loggingfunktion einbauen, die in eine Datei schreibt, wo das Programm gerade ist. (Leider treten solche Hänger ja beim Debuggen schonmal ganz gerne nicht auf :-()


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