WM_POWERBROADCAST 消息

通知应用程序发生了某个电源管理事件。

窗口通过其 WindowProc 函数接收此消息。

LRESULT CALLBACK WindowProc(
  HWND   hwnd,    // handle to window
  UINT   uMsg,    // WM_POWERBROADCAST
  WPARAM wParam,  // power-management event
  LPARAM lParam   // function-specific data
);

参数

hwnd

窗口的句柄。

uMsg

含义
WM_POWERBROADCAST
536 (0x218)
消息标识符。

wParam

电源管理事件。 此参数可以是下列事件标识符之一。

活动 含义
PBT_APMPOWERSTATUSCHANGE
10 (0xA)
电源状态已更改。
PBT_APMRESUMEAUTOMATIC
18 (0x12)
操作正在从低功耗状态自动恢复。 每次系统恢复时都会发送此消息。
PBT_APMRESUMESUSPEND
7 (0x7)
操作正在从低功耗状态恢复。 如果用户输入(例如按键)触发了恢复,则会在发送 PBT_APMRESUMEAUTOMATIC 后发送此消息。
PBT_APMSUSPEND
4 (0x4)
系统正在暂停操作。
PBT_POWERSETTINGCHANGE
32787 (0x8013)
已收到电源设置更改事件。

lParam

事件特定的数据。 对于大多数事件,此参数是保留的,而不会使用。

如果 wParam 参数为 PBT_POWERSETTINGCHANGE,则 lParam 参数是指向 POWERBROADCAST_SETTING 结构的指针。

返回值

如果应用程序处理此消息,则应返回 TRUE

备注

系统每次恢复时都始终会发送 PBT _APMRESUMEAUTOMATIC 消息。 如果系统为响应用户输入(例如按键)而恢复,则系统还会在发送 PBT_APMRESUMEAUTOMATIC 后发送 PBT_APMRESUMESUSPEND 消息。

WM_POWERBROADCAST 消息不会区分不同的低功耗状态。 应用程序只能确定系统是正在进入低功耗状态还是已从低功耗状态恢复;它无法确定具体的电源状态。 系统会在 Windows 系统事件日志中记录有关电源状态转换的详细信息。

在 Windows Vista 中,为了防止系统转换到低功耗状态,应用程序必须调用 SetThreadExecutionState 来告知系统该状态已被使用。

“要求”部分中指定的任何操作系统都不支持以下消息:

  • PBT_APMQUERYSTANDBY
  • PBT_APMQUERYSTANDBYFAILED
  • PBT_APMSTANDBY
  • PBT_APMRESUMESTANDBY

要求

要求
最低受支持的客户端
Windows XP [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
Header
Winuser.h(包括 Windows.h)

另请参阅