一个有窗口的进程,是可以估计它是否响应。就像Vista下的DWM(Desktop Windows Management)的做法 - 它给窗口线程发消息,如果发现5秒钟内没有回音,它就认为该窗口线程未响应。你可模仿该做法。
先得到该进程的主窗口(假定该进程只有一个窗口线程);
用SendMessageTimeout API给他发空消息(WM_NULL);
如果超时,则认为该进程未响应
先得到该进程的主窗口(假定该进程只有一个窗口线程);
用SendMessageTimeout API给他发空消息(WM_NULL);
如果超时,则认为该进程未响应
Gets a value indicating whether the user interface of the process is responding.
Namespace: System.Diagnostics
Assembly: System (in System.dll)C#
public bool Responding { get; }
要注意如果该Process没有窗口,Responding将一直返回true。