2011-04-11 65 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()