Windows是进入睡眠模式还是使用C ++休眠?

时间:2012-08-14 00:52:58

标签: c++ windows winapi power-management

  

可能重复:
  How to detect if windows is going to hibernate or suspend?

有人可以刷新我的记忆,从Windows上运行的程序的角度来看,无法知道系统是进入睡眠模式还是休眠,对吗? (我需要知道系统输入的模式,或者刚刚恢复的模式。)

1 个答案:

答案 0 :(得分:6)

从我收集的内容来看,用户模式代码无法区分suspend和hibernate。有一个名为SYSTEM_POWER_STATE的内核模式枚举,其中包含您要查找的状态,但您无法在用户模式下获得该状态。

您可以做的最好的事情是将回调设置为捕获WM_POWERBROADCAST消息。暂停或休眠即将发生时发送PBT_APMQUERYSUSPEND消息。之后,如果暂停未被取消,您将收到PBT_APMSUSPEND。在恢复时,将发送PBT_APMRESUMEAUTOMATIC消息。