怎么样判断一个进程出错或未响应

在没查之前,想了一下,应该是使用SendMessage发送一个必回的消息到目标进程的某窗体,如果有返回了证明是活的,如果没返回就应该是死了.

不过懒,没想先写代码.......干脆搜索一下,发现有个简单的API可以搞定:

[codes=vb]Private Declare Function IsHungAppWindow Lib "user32.dll" ( _
            ByVal hWnd As Long) As Long
[/codes]

参数只有一个,目标窗口的句柄.

返回值测试了一下,当句柄无效或句柄所标识的窗体的消息循环是正常的,则返回0,否则返回1,代表挂了....

另外的办法,是使用SendMessageTimeout+WM_NULL来看是否返回,与我上面的思路差不多,看来没想错. 
posted @ 2011-01-20 13:45  J&W  阅读(810)  评论(0编辑  收藏  举报