Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Windows-сообщения в неактивном окне


Автор: diamondd 11.9.2007, 18:29
Пробовал отлавливать сообщения системы разными путями (WndProc, ApplicationEvents, SetWindowsHookEx), но если окно неактивно ничего не происходит. Пожалыста, подскажите!

Автор: Alexeis 11.9.2007, 19:53
  О каких сообщениях идет речь? Неактивному окну не отсылают некоторые сообщения, потому их и нельзя получить.

Автор: diamondd 11.9.2007, 20:49
Цитата(Alexeis @  11.9.2007,  19:53 Найти цитируемый пост)
 О каких сообщениях идет речь? Неактивному окну не отсылают некоторые сообщения, потому их и нельзя получить.


Речь идет о сообщениях клавиатуры. Да, они не отсылаются неактивному окну (через WndProc и ApplicationEvents). Но я наткнулся на описание ловушек (hook) и прочитал в хелпе по Windows SDK, что эти ловушки выполняются до отправки сообщения активному окну. Попробовал. Все работает, но как только я переключаюсь на другое окно, то мое окно перестает реагировать.

Автор: Alexeis 11.9.2007, 21:19
  Так для того чтобы ловушка работала, она должна находиться в Dll иначе она не сможет пристыковаться к чужому приложению. Так получается, что ловушка перехватывала только сообщения текущего приложения, и как только они перестали поступать, сразу и перестало срабатывать. Хук присоединенный в виде Dll присоединяется не только к текущей программе но и ко всем остальным, потому он и перехватывает чужие приложения. Есть масса готовых примеров в разделе "Delphi: WinAPI и системное программирование"

Автор: diamondd 12.9.2007, 17:39
Попробовал, теперь работает. Пасибо! smile

Автор: Alexeis 12.9.2007, 17:44
diamondd, если вопрос решен, то его следует пометить как решенный (справа возле опций темы)

Автор: diamondd 12.9.2007, 17:46
Извиняюсь... запамятовал

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)