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

Is Windows entering sleep mode or hibernating with C++?

本文关键字:C++ 休眠 模式 Windows      更新时间:2023-10-16

可能的重复项:
如何检测窗口是否会休眠或挂起?

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

从我收集到的信息来看,用户模式代码无法区分挂起和休眠。有一个名为 SYSTEM_POWER_STATE 的内核模式枚举,其中包含您要查找的状态,但您无法在用户模式下获取该状态。

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