Как мое приложение может найти отправителя сообщения окон?

Сразу вспоминается книга Стива Круга «Не заставляй меня думать» .

При проектировании диалоговых окон, сообщений о состоянии, возвращаемых пользователю и т. Д., Хорошо использовать иконографию и цветовые подсказки относительно того, что на самом деле говорят слова.

Поэтому выделите сообщения об ошибках красным цветом, предупреждения желтым и т. Д.

16
задан mj2008 26 May 2009 в 14:29
поделиться

3 ответа

Нет встроенного способа узнать, кто отправил оконное сообщение, даже win32k не отслеживает этот; вы могли бы узнать это с помощью отладчика ядра и условной точки останова.

Однако я бы сказал, что вам действительно не нужна эта информация; вам необходимо заставить ваше приложение правильно обрабатывать любое сообщение, отправленное ему.

7
ответ дан 30 November 2019 в 23:27
поделиться

(Я изначально предлагал использовать Spy ++ или winspector, но они не подключаются к отправке сообщений. Это даже не имеет смысла! Окно получает сообщения, но они не отправляйте их, это делает поток. Я оставлю свое предложение об использовании отладчика.)

Иногда может помочь отладка. Попробуйте загрузить файлы Windows PDB и установить точку останова, которая срабатывает только при появлении одного из этих сообщений. Взгляд на стек вызовов в этот момент часто может пролить свет на то, почему что-то происходит. Отправленные сообщения и сообщения, отправленные из других процессов, помешают этому подходу.

1
ответ дан 30 November 2019 в 23:27
поделиться

Я не уверен, что это делает то, что вы хотите, но взгляните на Process Monitor автор: sysinternals.

http: // technet.microsoft.com/en-us/sysinternals/bb896645.aspx

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

-2
ответ дан 30 November 2019 в 23:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: