2010-02-09 44 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

相關問題