HWND_BROADCAST 的 sendMessage 不工作

sendMessage for HWND_BROADCAST is not working

我正在尝试从 fromMain 向 from1 发送消息,我使用 findwindow 查找 form1 和 sendMessage 的句柄,它工作得很好。但是我使用 sendMessage 来广播消息,它根本不起作用。有哪位大神帮我看看哪里出了问题?

    Public Const WM_MyMsg As Integer = &H8001
    Public Const HWND_BROADCAST As Integer = &HFFFF&


    Dim hnwd As Integer = CInt(FindWindow(vbNullString, "form1"))
    SendMessage(hnwd, WM_MyMsg, 0, 0) 'works perfectly, form1 get the msg


    SendMessage(HWND_BROADCAST, WM_MyMsg, 0, 0) 'not working at all, form1 doesn't have any response

您正在尝试向所有顶级 windows 广播 WM_APP 范围内的自定义消息。此类消息在应用程序中是私有的,系统知道广播它们是无效的,并阻止您这样做。它决定这样做是为了避免设计不当的应用程序导致其他应用程序不稳定。

documentation 非常清楚如何广播自定义消息:

Applications that need to communicate using HWND_BROADCAST should use the RegisterWindowMessage function to obtain a unique message for inter-application communication.