我需要发送带有自定义 ID 的自定义 Windows 消息,其他应用程序将侦听该消息。
Windows 是否为内部消息保留任何预定义的消息 ID 范围,如 SQL Server 那样(内部消息最多为 50.000)?
The 文档 https://msdn.microsoft.com/en-us/library/windows/desktop/ms644927.aspx says:
应用程序定义的消息
应用程序可以创建供其自己的窗口使用的消息或与其他进程中的窗口进行通信。如果应用程序创建自己的消息,则接收它们的窗口过程必须解释这些消息并提供适当的处理。
消息标识符值的使用如下:
- 系统保留 0x0000 到 0x03FF 范围内的消息标识符值(WM_USER https://msdn.microsoft.com/en-us/library/windows/desktop/ms644931.aspx– 1) 用于系统定义的消息。应用程序不能将这些值用于私人消息。
- 0x0400 范围内的值(WM_USER https://msdn.microsoft.com/en-us/library/windows/desktop/ms644931.aspx) 到 0x7FFF 可用于私有窗口类的消息标识符。
- 如果您的应用程序标记为版本 4.0,则可以使用 0x8000 (WM_APP https://msdn.microsoft.com/en-us/library/windows/desktop/ms644930.aspx)通过 0xBFFF 发送私人消息。
- 当应用程序调用注册窗口消息 https://msdn.microsoft.com/en-us/library/windows/desktop/ms644947.aspx函数来注册一条消息。该函数返回的消息标识符保证在整个系统中是唯一的。使用此功能可以防止其他应用程序将相同的消息标识符用于不同目的时可能出现的冲突。
我怀疑RegisterWindowMessage
是您正确的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)