电源管理事件

来源:互联网 发布:论坛网站排名数据库 编辑:程序博客网 时间:2024/06/07 05:55

WM_POWERBROADCAST 消息



  根据网络资料整理而来,整体意义不大,因为在 Windows Vista以上系统,此消息只对顶层窗口广播,不会对UAC控制下的程序广播,所以很麻烦。



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

事件意义
PBT_APMPOWERSTATUSCHANGE
10 (0xA)

  电源状态更改

PBT_APMRESUMEAUTOMATIC
18 (0x12)

  操作系统自动低功耗状态恢复。系统恢复时会发送消息

PBT_APMRESUMESUSPEND
7 (0x7)

  操作系统低功耗状态恢复时,如果有用户正在输入,那么在PBT_APMRESUMEAUTOMATIC 后发送此消息。

  远程唤醒,不会显示此消息。鼠标或键盘唤醒,会显示此消息。

PBT_APMSUSPEND
4 (0x4)

  系统正在暂停操作

PBT_POWERSETTINGCHANGE
32787 (0x8013)

  电源设置更改事件收到

 

备注

每当系统恢复系统总是发送PBT_APMRESUMEAUTOMATIC消息如果系统恢复响应用户输入按下一个系统将发送PBT_APMRESUMEAUTOMATIC发送PBT_APMRESUMESUSPEND消息

WM_POWERBROADCAST消息区分不同低功耗状态应用程序可以决定系统正在进入已经恢复低功耗状态;无法确定具体电源状态系统Windows系统事件日志记录有关电源状态转换详细信息

若要防止系统过渡低功耗状态WindowsVista应用程序必须调用SetThreadExecutionState通知系统使用

Windows Vista以上操作系统支持以下消息:

PBT_APMQUERYSTANDBY
PBT_APMQUERYSTANDBYFAILED
PBT_APMSTANDBY
PBT_APMRESUMESTANDBY

  



  上面是MSDN资料,实际个人喜欢直接用程序来获取,代码如下:

protected  procedure QUERYSUSPEND(var Message: TMessage); message WM_POWERBROADCAST ;procedure TForm1.QUERYSUSPEND(var Message: TMessage);begin  ListBox1.Items.Add(Format('$%.8x,$%.8x', [Message.WParam,Message.LParam]));  inherited;//  if(Message.WParam=PBT_APMQUERYSUSPEND)//  Message.Result := 0;end;

WM_POWER 消息

  WM_POWER消息已经过时提供16 位 Windows 的应用程序兼容性现在的应用程序使用WM_POWERBROADCAST消息


0 0