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.