发送到HWND_BROADCAST的消息转到其他桌面?

我试图确定HWND_BROADCAST如何工作的一些细节。 不幸的是,MSDN没有这个值的特定页面; 它只是在其他几篇文章中提到过,比如SendMessagePostMessage

我特别想知道的是,发送到HWND_BROADCAST消息是否由与同一个窗口站中的其他桌面相关联的窗口接收。 文档说这个消息将会被转到“系统中的所有顶层窗口”,但显然这不是严格的。 例如,我确定他们不会去其他login会话中的窗口(例如在terminal服务器上)。 我的猜测是,它们至less局限于调用进程的窗口工作站,但我不知道它们是否也仅限于调用线程的桌面(每个线程都与一个桌面关联)。

最坏的情况下,我可以去编写一些代码来testing这个经验,但有没有人碰巧知道答案了?

你是对的。 以这种方式发送的消息只能进入当前登录的Windows会话/桌面的顶层窗口。 他们不会去任何其他的桌面。

Vista将阻止消息被传递到顶层窗口,如果它来自一个较低的特权进程,你应该关心它。