2009-05-23 51 views
3

我試圖確定HWND_BROADCAST如何工作的一些細節。不幸的是,MSDN沒有這個值的特定頁面;它只是在其他幾篇文章中提到過,例如SendMessagePostMessage發送到HWND_BROADCAST的消息轉到其他桌面?

我特別想知道的是,是否發送到HWND_BROADCAST消息是通過用在同一窗口站其他桌面相關的窗口接收。該文檔表示,該消息將轉到「系統中的所有頂級窗口」,但顯然這不完全正確。例如,我確定他們不會去其他登錄會話中的窗口(例如在終端服務器上)。我的猜測是,它們至少侷限於調用進程的窗口工作站,但我不知道它們是否也僅限於調用線程的桌面(每個線程都與單個桌面關聯)。

最壞的情況我可以去編寫一些代碼來測試經驗這一點,但沒有任何人發生已經知道答案嗎?

回答

3

你是正確的。以這種方式發送的消息只會進入當前登錄的Windows會話/桌面的頂級窗口。他們不會去任何其他桌面。

+0

我沒有測試過這一點,但我相信你的話。謝謝! – Charlie 2009-06-05 19:53:09

1

如果它從一個較低的特權進程Vista將阻止被傳遞到頂層窗口的消息,你應該關心它。