2011-04-11 23 views
1

我想知道如果一個人可以長時間運行Java應用程序,例如48小時,沒有窗戶通過進入睡眠模式(例如待機或休眠或其他)進入休眠狀態。我需要Java運行沒有中斷,直到完成,任何想法?運行java進程沒有贏7進入standy或休眠或

感謝名單

+1

你爲什麼不改變電源設置?如果你不能這樣做,那麼看看SetThreadExecutionState()。 – 2011-04-11 08:04:05

+0

示例代碼見http://www.codeproject.com/KB/java/standbydetector.aspx?display=Mobile – eee 2011-04-11 08:25:06

+0

我已經厭倦了這段代碼,它不適用於64位機器,加上它的舊版本VS 6版本。 – Fuega 2011-04-11 08:30:53

回答

2

以及直接劈,您可以使用Robot生成一些關鍵命中/鼠標中斷,這樣你的機器不會轉到空閒模式

+0

尼斯提示。你是否已經在生產系統上使用它,所以你知道它確實有效? – 2011-04-11 08:03:32

+0

@Lukas,不,我寫它不是真正的解決方案,我沒有嘗試。 – 2011-04-11 08:11:55

+0

它會工作得很好。 – 2011-04-11 08:48:37

1

WM_POWERBROADCAST狀態的文檔:

爲防止系統從 轉換到Windows Vista的 低功耗狀態,應用程序必須調用SetThreadExecutionState 以通知 它正在使用的系統。

Windows的整個區域都發生了巨大的變化,從XP到Vista,所以任何基於WM_POWERBROADCAST的解決方案都不適用於現代Windows。

因此,推薦的解決方案是撥打SetThreadExecutionState()。您可以使用例如虛假的鼠標消息SendInput()或更多的Java本地等效,但我可能會去SetThreadExecutionState()

相關問題