AddMessageFilter без Windows Forms? - PullRequest
2 голосов
/ 28 мая 2009

Я бы хотел использовать функциональность System.Windows.Forms.Application.AddMessageFilter, но мое целевое приложение не использует Windows Forms. Эта функция добавляет фильтр для мониторинга сообщений Windows по мере их маршрутизации. Если кто-нибудь знает, как это работает, я не против написать свой собственный код для выполнения той же функции.

SetWindowLong с GWL_WNDPROC влияет только на полученные сообщения, и я хотел бы повлиять на отправленные сообщения. System.Windows.Forms.Application является статическим, но вызов AddMessageFilter с IMessageFilter, который создает исключение, не работает.

1 Ответ

2 голосов
/ 28 мая 2009

Вы можете использовать перехват сообщений, чтобы достичь того, что вы хотите. Фактически, перехват сообщений гораздо более мощный, чем IMessageFilter, потому что существуют другие виды перехватчиков, отличные от сообщений Windows, отправляемых дескриптору окна. Например, вы можете подключить общесистемные нажатия клавиш или движения мыши.

См. Эту статью для получения дополнительной информации

http://msdn.microsoft.com/en-us/magazine/cc188966.aspx

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