怎么样判断一个进程出错或未响应
在没查之前,想了一下,应该是使用SendMessage发送一个必回的消息到目标进程的某窗体,如果有返回了证明是活的,如果没返回就应该是死了.
不过懒,没想先写代码.......干脆搜索一下,发现有个简单的API可以搞定:
[codes=vb]Private Declare Function IsHungAppWindow Lib "user32.dll" ( _
ByVal hWnd As Long) As Long
[/codes]
参数只有一个,目标窗口的句柄.
返回值测试了一下,当句柄无效或句柄所标识的窗体的消息循环是正常的,则返回0,否则返回1,代表挂了....
另外的办法,是使用SendMessageTimeout+WM_NULL来看是否返回,与我上面的思路差不多,看来没想错.
不过懒,没想先写代码.......干脆搜索一下,发现有个简单的API可以搞定:
[codes=vb]Private Declare Function IsHungAppWindow Lib "user32.dll" ( _
ByVal hWnd As Long) As Long
[/codes]
参数只有一个,目标窗口的句柄.
返回值测试了一下,当句柄无效或句柄所标识的窗体的消息循环是正常的,则返回0,否则返回1,代表挂了....
另外的办法,是使用SendMessageTimeout+WM_NULL来看是否返回,与我上面的思路差不多,看来没想错.