Wartezeit eines Prozesses messen
-
Hallo!
Ich möchte gerne die Zeit messen, in der ein Prozess "hängt". Sprich, jedes mal, wenn der Benutzer das Programm nicht ansprechen kann.
Mein erstes Programm hat die Zeit gemessen, indem der Windows Cursor zur Sanduhr wurde. Leider reicht das nicht ganz aus, da das Programm auch hängt ohne, dass der Benutzer gerade aktiv damit arbeitet.
Gibt es irgendwo eine API wo man den Prozess-Status abrufen kann und fragen kann "Hängst du gerade?"
Danke!
-
Vielleicht könnte man einen Timer einrichten, der ab Programmstart die Sekunden zählt. Außerdem ruft man die Systemzeit beim Programmstart sozusagen als Nullpunkt ab. Immer wenn der Prozess hängt, kann der Timer die Sekunden seit Programmstart nicht zählen. Die Differenz zwischen (aktuelle Systemzeit - Nullpunk) - Sekundenzähler ergäbe dann den Hängerwert.
-
Was meinst du mit hängen? Normalerweise wartet so ein GUI-Programm auf Nachrichten und verarbeitet diese. Hat es innerhalb einer bestimmten Zeit keine Nachrichten mehr abgeholt, bzw ist die 'Warteschlange' voll, 'hängt' das Programm, was dann von Windows angezeigt wird, wobei das nicht passieren sollte.
-
Hallo, danke für die Antworten.
Erste Antwort kann ich leider nicht nutzen, da ich ein externes Programm überwachen möchte.
Soetwas wie von Techel habe ich auch schon gedacht. Nur dafür kenne ich mich in der C++/Win-Api-Welt zuwenig aus. Und bevor ich stundenlang die Dokumentationen der Winapi lese, wollte ich erstmal Informationen einholen ob das überhaupt möglich ist.
Hängen = Programm reagiert nicht auf Benutzereingaben