将 WM_POWERBROADCAST 发送到其他进程
Posted
技术标签:
【中文标题】将 WM_POWERBROADCAST 发送到其他进程【英文标题】:Send WM_POWERBROADCAST to other process 【发布时间】:2020-12-20 08:05:43 【问题描述】:我有一个监控 Windows power management events 的 Windows 应用程序
如何手动将此类事件发送到进程以进行测试,而不是让笔记本电脑进入睡眠或休眠状态?例如,有没有办法将 PBT_APMSUSPEND 发布到进程?
【问题讨论】:
【参考方案1】:您可以使用SendMessage
,使用收件人应用程序主窗口句柄作为目标发送消息,并相应设置参数。
PBT_POWERSETTINGCHANGE
可能有问题,其中lParam
是指向结构的指针。 (Windows 通常会相应地将此类结构复制到其他进程,但由于这是您不应该发送给自己的消息,因此可能会以不同的方式处理。)
无论如何,测试真实场景会更谨慎,例如在虚拟机中。 虽然您可以测试您的应用程序对特定消息的响应,但有些方面并未涵盖
您需要注册的一些通知 (RegisterPowerSettingNotification
)
通知的顺序和时间
分配的响应时间
操作系统的行为取决于您的返回代码是否表明您确实处理了该消息
【讨论】:
以上是关于将 WM_POWERBROADCAST 发送到其他进程的主要内容,如果未能解决你的问题,请参考以下文章