将 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 发送到其他进程的主要内容,如果未能解决你的问题,请参考以下文章

将变量发送到其他页面(发送消息)[关闭]

将捆绑包发送到其他进程

如何将字符串从 iPhone 发送到其他蓝牙设备

如何使用 delphi 2010 将虚拟键发送到其他应用程序?

我想使用 ajax 或任何其他方法将图像发送到数据库

java 使用Serializable将数据发送到其他Intent