AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Prüfen ob Programm abgestürzt ist
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen ob Programm abgestürzt ist

Ein Thema von iDope · begonnen am 5. Dez 2013 · letzter Beitrag vom 10. Dez 2013
Antwort Antwort
Seite 3 von 3     123   
Furtbichler
(Gast)

n/a Beiträge
 
#21

AW: Prüfen ob Programm abgestürzt ist

  Alt 8. Dez 2013, 10:50
...und schieße es dann ab....
... und starte es dann neu?

Leider kann man nicht jedes Programm 'abschießen', vor allen Dingen gerade die, die 'hängen'.

Aber wenigstens hast Du das für dich definiert und hier kundgetan: Alle anderen reden nur um den heißen Brei herum
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#22

AW: Prüfen ob Programm abgestürzt ist

  Alt 8. Dez 2013, 12:17
Leider kann man nicht jedes Programm 'abschießen', vor allen Dingen gerade die, die 'hängen'.
Wohl nicht auf die Weise, die der Taskmanager unter "Anwendungen" als "Task beenden" anbietet. Das ist nach meinem Wissen nicht mehr als eine an das Progremm verschickte Beenden-Bitte. Programme, die sich verschließen, werden darauf demnach nicht anders als "verzickte" Menschen reagieren. Besser ist schon "Prozess beenden" unter dem Reiter "Prozesse", das beruht m.E. auf TerminateProcess. Besonders groß dürfte die Erfolgsaussicht sein, wenn man das mit erweiterten Prviilegien tut (erfordert Administratorrechte). Mein Programm "Prozesse" (auch in diesem Forum unter "Prozeßbetrachter" zu finden) demonstriert das.

Allerdings stößt auch TerminateProcess irgendwann an seine Grenzen, und zwar bei Diensten und den "besonders systemnahen Prozessen".

Ergänzung: "Besonders systemnahe Prozesse" setzte ich deshalb in Anführungsstriche, weil mir noch ein glanzvoller Beitrag von Assarbad "im Hinterkopf" bekannt und bewußt war, den ich nun wiederfand: http://www.delphipraxis.net/1057551-post10.html

Geändert von Delphi-Laie ( 8. Dez 2013 um 20:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#23

AW: Prüfen ob Programm abgestürzt ist

  Alt 8. Dez 2013, 12:24
Allerdings stößt auch ProcessTerminate irgendwann an seine Grenzen, und zwar bei Diensten.
Nur wenn da die nötigen Rechte fehlen. (Anwender/Taskmanager = Benutzer und Dienst ist Systemdienst)

Aber bei hängenden Treibern (nicht User-Mode-Treibern) wartet ProcessTerminate auch gern auf den Treiber.



Also:
- Windows prüft nur, ob die GUI hängt, aber kann nicht prüfen ob das Programm hängt

- was "Hängen" ist, muß je nach Anwendung/Funktion/Verwendung entsprechend definiert werden

- es ist nicht immer möglich auf das "Hängen" zu prüfen

- praktisch kann man nur regelmäßig versuchen eine "Aktion" auszulösen und deren "Ergebnis" auswerten, um das "Hängen/Funktionieren" prüfen zu können,
aber auch das ist nicht immer ein sichere Prüfmethode (z.B. Funktionsaufruf geht, das Ergebnis ist valide, aber es stimmt nicht "mehr", weil eine Aktualisierungsroutine hängt)

- usw.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#24

AW: Prüfen ob Programm abgestürzt ist

  Alt 8. Dez 2013, 12:43
Wohl nicht auf die Weise, die der Taskmanager unter "Anwendungen" als "Task beenden" anbietet. Das ist nach meinem Wissen nicht mehr als eine an das Progremm verschickte Beenden-Bitte.
Aber danach wird auch angeboten das Programm hart zu beenden, wenn es auf die Message mit der Anforderung nicht reagiert. Deshalb ist der Weg schon der sinnvollste, wenn man nicht zu 100% sicher ist, dass das Programm ohnehin nicht reagieren wird. Denn wenn es doch noch darauf reagiert und nur die GUI gerade eingefroren ist, wird es dann sanft beendet und kann dabei aufräumen.

Hart beenden sollte man nur, wenn der sanfte Weg nicht klappt.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#25

AW: Prüfen ob Programm abgestürzt ist

  Alt 8. Dez 2013, 20:19
Leider kann man nicht jedes Programm 'abschießen', vor allen Dingen gerade die, die 'hängen'.
:::Besser ist schon "Prozess beenden" unter dem Reiter "Prozesse", das beruht m.E. auf TerminateProcess. Besonders groß dürfte die Erfolgsaussicht sein, wenn man das mit erweiterten Prviilegien tut (erfordert Administratorrechte)....
Witzbold Wenn ich sage 'geht nicht', dann meine ich natürlich auch 'geht nicht'. Weder mit Adminrechten, noch als Prozess, noch sonstewie.

Aber bei hängenden Treibern (nicht User-Mode-Treibern) wartet ProcessTerminate auch gern auf den Treiber.
Und wenn der Treiber schrott ist, dann wartet ProcessTerminate eben bis in alle Ewigkeit => 'geht nicht'
  Mit Zitat antworten Zitat
iDope

Registriert seit: 5. Dez 2013
11 Beiträge
 
#26

AW: Prüfen ob Programm abgestürzt ist

  Alt 10. Dez 2013, 12:02
Okay, das ist ja ein ziemlich heikles Thema was ich hier angestoßen habe.
Und wie das hier aussieht ist genau das was ich vor hatte gar nicht bzw nicht in diesem Ausmaß möglich, wenn ich mir hier die Kommentare durchlese.
Trotzdem vielen Dank für eure Hilfe, ich versuche eine andere Lösung des Problems zu finden.
Falls jemand jedoch eine Lösung, die mein Problem behebt, findet, die eventuell noch nicht angesprochen wurde, wäre es nett diese hier zu posten (:

MfG
iDope
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 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