代码改变世界

捕获windows系统的sleep或hibernate状态

2018-06-07 12:18  晨~光  阅读(764)  评论(0编辑  收藏  举报

通过捕获WM_POWERBROADCAST消息无法区分出系统是进去了sleep状态还是hibernate状态。

在进入这两个状态时,系统会发出PBT_APMSUSPEND。如何从sleep或hibernate状态中恢复过来,系统会先发出PBT_APMRESUMESUSPEND, 然后发出PBT_APMRESUMEAUTOMATIC。

在内核态,通过SYSTEM_POWER_STATE标识系统有哪些状态。

 

https://msdn.microsoft.com/en-us/library/windows/desktop/aa373248(v=vs.85).aspx

https://stackoverflow.com/questions/11944335/is-windows-entering-sleep-mode-or-hibernating-with-c

https://msdn.microsoft.com/en-us/library/windows/desktop/aa373229(v=vs.85).aspx

https://msdn.microsoft.com/en-us/library/windows/desktop/aa373227(v=vs.85).aspx