2010-02-09 47 views
4

有没有办法知道进程挂起的时间?有没有win32的电话呢?在Windows中是否有方法知道进程是否没有响应?

+0

定义挂!陷入无限循环或长时间运行。 – 2010-02-09 16:00:18

+0

过程无法正常工作的通用方式。例如。您不能使用Windows消息来检查SQL Server实例是否正常工作。 – 2013-01-04 20:37:31

回答

10

您发送一个WM_NULLSendMessageTimeout()。如果在超过一秒钟或三秒钟之后超时,它没有响应(尽管它最终可能会)。

+0

嗨杰里,是在VB或C++ ..? – ibiza 2011-03-29 17:51:22

+1

@ibiza:Windows一般 - SendMessageTimeout是Windows本身的一部分,所以任何可以访问Windows API的东西都可以工作。 – 2011-03-29 17:56:28

6

只为其他人路过:它可能更容易使用IsHungAppWindow

+1

嗯......“这个功能不适合一般用途,它可能会在后续版本的Windows中被修改或无法使用。” – 2013-01-04 15:37:16

+1

最好的解决办法是,IsHungAppWindow()检查进程处于消息等待状态,它不发送任何WM_NULL。 – 23W 2013-03-12 09:10:11

相关问题