2012-09-24 15 views
6

Ich beobachte ein Programm und möchte es töten, wenn es für einige Zeit im Zustand "wait: executive" ist.Wie kann ich den Status eines Programms erhalten?

Hier ist ein Screenshot des Process Explorer:

State: wait:executive

Wie kann ich diesen Zustand durch Code erhalten? Oder könnte mir vielleicht jemand sagen, was genau dieser Zustand bedeutet? Dies wird mir helfen, die richtige Abfrage zu finden, um mein Problem zu lösen.

+0

Informationen sollte irgendwo in PCB eines Prozesses sein. Ist das Windows 8? – nullpotent

+0

Nein, das ist in Windows 7. – rekire

+2

Es ist völlig normal, dass der Haupt-Thread einer Anwendung wartet –

Antwort

2

Es ist nicht Zustand Programm geholt werden, aber es ist Zustand thread.Ein Prozess kann viele Threads haben.

Sie können WaitForSingleObject anrufen, um einige Zustände zu bestimmen.

Sie können WMI auch mit COM instanziieren und Win32_Thread class auswählen.

Here is some example.

Mehr Infos hier: How to determine that a win32 thread is either in Wait or Join or Sleep state in c++

+0

Danke für diese Hinweise. Ich werde etwas Zeit brauchen, um das zu verstehen und umzusetzen. – rekire

2

Es bedeutet, dass der Thread für den Scheduler wartet/Bestandteil der Exekutive

Es kann mit WMI Win32_Thread (oder .net System.Diagnostics.ProcessThread WaitReason)

Verwandte Themen