电源管理事件

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 系统 事件 日志 记录 有关 电源 状态 转换 详细信息

若要 防止 系统 过渡 低功耗 状态 Windows Vista 应用程序 必须 调用 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值