【问题标题】:Send WM_POWERBROADCAST to other process将 WM_POWERBROADCAST 发送到其他进程
【发布时间】:2020-12-20 08:05:43
【问题描述】:

我有一个监控 Windows power management events 的 Windows 应用程序

如何手动将此类事件发送到进程以进行测试,而不是让笔记本电脑进入睡眠或休眠状态?例如,有没有办法将 PBT_APMSUSPEND 发布到进程?

【问题讨论】:

    标签: windows user32


    【解决方案1】:

    您可以使用SendMessage,使用收件人应用程序主窗口句柄作为目标发送消息,并相应设置参数。

    PBT_POWERSETTINGCHANGE 可能有问题,其中lParam 是指向结构的指针。 (Windows 通常会相应地将此类结构复制到其他进程,但由于这是您不应该发送给自己的消息,因此可能会以不同的方式处理。)

    无论如何,测试真实场景会更谨慎,例如在虚拟机中。 虽然您可以测试您的应用程序对特定消息的响应,但有些方面并未涵盖

    • 您需要注册的一些通知 (RegisterPowerSettingNotification)
    • 通知的顺序和时间
    • 分配的响应时间
    • 操作系统的行为取决于您的返回代码是否表明您确实处理了该消息

    【讨论】:

      猜你喜欢
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      • 2016-08-09
      • 2011-11-22
      • 2012-11-03
      • 1970-01-01
      相关资源
      最近更新 更多