Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi 带HWND_广播的Win32 API SendMessage_Winapi_Sendmessage - Fatal编程技术网

Winapi 带HWND_广播的Win32 API SendMessage

Winapi 带HWND_广播的Win32 API SendMessage,winapi,sendmessage,Winapi,Sendmessage,我正在尝试使用myresult=SendMessage(hWnd,…)发送消息。据我所知,SendMessage向指定的目标hWnd发送Windows消息;目标的WndProc返回一个长值;该值由SendMessage(myresult)返回。到目前为止我说的对吗 好的,现在如果SendMessage hWnd是hWnd_广播,它将被发送到所有顶级窗口。那么哪个窗口的WndProc决定返回值呢 更新:02-10-20 只是为了弄清楚我希望做什么… 我的应用程序由一小群需要通过windows消息进

我正在尝试使用myresult=SendMessage(hWnd,…)发送消息。据我所知,SendMessage向指定的目标hWnd发送Windows消息;目标的WndProc返回一个长值;该值由SendMessage(myresult)返回。到目前为止我说的对吗

好的,现在如果SendMessage hWnd是hWnd_广播,它将被发送到所有顶级窗口。那么哪个窗口的WndProc决定返回值呢

更新:02-10-20
只是为了弄清楚我希望做什么…

我的应用程序由一小群需要通过windows消息进行通信的windows应用程序组成。我的计划是广播一条注册信息,例如WM_IDENTIFYMYAPP,并通过回复识别所有兄弟姐妹。这与Adrian Mole在回答中解释的原因不同。

返回值将是最后一个接收窗口处理消息并返回的值;发送应用程序很难确定这是哪个窗口(如果不是不可能的话)

通常,当您想使用
HWND\u广播
通知多个窗口(或与您没有句柄的窗口通信)时,应使用(异步)
PostMessage
功能(立即返回),而不是
SendMessage
(等待所有接收窗口处理消息)


如前所述,将(同步)
SendMessage
HWND\u广播
一起用作目标可能会造成许多不良影响。但请注意,有些消息无法异步发送(通过
PostMessage
)-
WM_COPYDATA
是我所知道的一种消息。

实际上只有少数或两条消息是设计用于广播的。其中包括
WM_SYSCOLORCHANGE
WM_DEVMODECHANGE
,即打算作为通知的消息。我不知道是什么最终决定了
SendMessage,但从未发现它对任何东西都有用。返回值将是从最后一个接收窗口处理消息并返回的值。您是否试图将代码注入系统中具有窗口的每个进程中?这是我可以想到的使用
HWND\u BROADCAST
exc的唯一原因IInspectable(和DDE,现在没有人应该使用它)提到的通知式消息的ept。请参阅我更新的问题以了解我的意图,这并没有回答问题。此外,对于广播消息,还有比
PostMessage
更好的方法(
SendNotifyMessage
SendMessageTimeout
SendMessageCallback
)。@IInspectable抱歉-我现在在我对问题的评论中加入了“答案”(虽然不是特别有用)。但我同意你的“更好的选择!”好的,现在这确实提供了答案。不过我想知道这是否准确。我找不到任何有关这方面的文档。你有链接吗?@IInspectable我的“信息”来自(Pitter)经验-但我正在寻找一个确认链接。阿德里安:嗯,这很不幸。但我想我有一个工作可以做我想做的。顺便说一句,PostXXX对我不起作用。