3

私はどのように機能するかの詳細のいくつかを決定しようとしてHWND_BROADCASTいます. 残念ながら、MSDN にはこの値に関する特定のページがありません。SendMessageやなど、他のいくつかの記事で言及されているだけPostMessageです。

私が特に知りたいのは、送信されたメッセージがHWND_BROADCAST、同じウィンドウ ステーション内の他のデスクトップに関連付けられたウィンドウで受信されるかどうかです。ドキュメントには、メッセージは「システム内のすべての最上位ウィンドウ」に送信されると書かれていますが、厳密にはそうではありません。たとえば、他のログオン セッション (ターミナル サーバーなど) で Windows にアクセスすることはないと確信しています。私の推測では、それらは少なくとも呼び出しプロセスのウィンドウ ステーションに限定されていますが、呼び出しスレッドのデスクトップにも限定されているかどうかはわかりません (各スレッドは単一のデスクトップに関連付けられています)。

最悪の場合、これを経験的にテストするコードを書きに行くことができますが、たまたま答えを知っている人はいますか?

4

2 に答える 2

3

あなたは正しいです。この方法で送信されたメッセージは、現在ログインしているWindowsセッション/デスクトップのトップレベルのウィンドウにのみ送信されます。他のデスクトップには移動しません。

于 2009-05-23T01:36:13.623 に答える
1

Vistaは、特権の低いプロセスからのメッセージである場合、トップレベルのウィンドウに配信されるメッセージをブロックします。注意が必要です。

于 2009-05-23T01:49:50.273 に答える