如何检查系统是否处于待机模式?

时间:2008-12-22 19:48:24

标签: winapi visual-c++ mfc

我想检查系统是否处于待机模式,是否有任何Win32 API?我不确定它是否与睡眠模式相同。

有一些代码在我的应用程序中执行,导致它在退出待机状态时挂起(它在待机模式下执行),所以我想避免在计算机休眠/待命时运行该代码

提前致谢!

丹尼斯

编辑:也许这是不可能的,因为程序不应该像下面的答案中指出的那样运行,所以我会把它作为答案:)

3 个答案:

答案 0 :(得分:4)

当系统处于待机模式时,则不会运行任何程序,因此以下情况可以正常:

int is_in_standby() {
  return 0;
}

或者我错过了什么?

答案 1 :(得分:1)

据我所知,Windows的待机模式下没有运行任何代码。除了RAM之外,一切都已关闭。代码中的错误可能是由计算机再次唤醒后的窗口消息引起的。

答案 2 :(得分:0)

如果您的程序正在运行,则表示您未处于待机状态。

我认为您要做的是处理WM_POWERBROADCAST消息。这些将告诉你系统何时改变电源状态,并且在Vista之前,如果你愿意,你可以做坏事并否决权。