отправляются ли сообщения, отправленные HWND_BROADCAST, на другие рабочие столы? - PullRequest
3 голосов
/ 23 мая 2009

Я пытаюсь определить некоторые детали того, как HWND_BROADCAST работает. К сожалению, MSDN не имеет определенной страницы для этого значения; он упоминается только мимоходом в нескольких других статьях, например, для SendMessage и PostMessage.

Что я конкретно хочу знать, так это то, принимаются ли сообщения, отправленные на HWND_BROADCAST окнами, связанными с другими рабочими столами в той же оконной станции. В документах говорится, что сообщение будет отправлено «всем окнам верхнего уровня в системе», но ясно, что это не может быть строго правдой. Например, я уверен, что они не пойдут в окна в других сеансах входа (например, на сервере терминалов). Я предполагаю, что они, по крайней мере, ограничены оконной станцией вызывающего процесса, но я не знаю, ограничены ли они также рабочим столом вызывающего потока (каждый поток связан с одним рабочим столом).

В худшем случае я могу написать некоторый код, чтобы проверить это эмпирически, но кто-нибудь случайно уже знает ответ?

Ответы [ 2 ]

3 голосов
/ 23 мая 2009

Вы правы. Сообщения, отправленные таким образом, будут отправляться только в окна верхнего уровня текущего сеанса / рабочего стола Windows. Они не пойдут на любой другой рабочий стол.

1 голос
/ 23 мая 2009

Vista заблокирует сообщение, которое будет доставлено в окна верхнего уровня, если оно пришло из процесса с более низким уровнем привилегий, вам следует позаботиться об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...