| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Сообщение от хука неактивному окну |
| Автор: Undie 19.2.2003, 07:51 |
| Собственно, ПРОБЛЕМА. Есть хук, который ловит нажатие CTRL-SHIFT. По этому нажатию генерируется сообщение WM_USER. Если окно, которому посылают сообщение активно, то оно нормально ловится. Если же окно неактивно, сообщение пропадает в никуда. Я уж всеь интернет перерыл - не нашел в чем тут дело.. Посоветуйте, если кто имел дело с такой штукой. Пишу в C++ Builder 6. Вот кусочки кода: --- HookDLL.cpp --- if (ctrl_p && shift_p) { MessageBox(NULL, "CTRL-SHIFT!", "...testing...", MB_OK); PostMessage(Mmf.apphwnd, WM_USER + 2000, wParam, lParam); } else return CallNextHookEx(0, code, wParam, lParam); --- end --- MessageBox работает всегда, как и задумывалось :-) Mmf.apphwnd - хендлер окна, передается при установке хука В описании класса: --- Unit1.h --- public: // User declarations __fastcall TForm1(TComponent* Owner); MESSAGE void __fastcall HookMsg(TMessage& Msg); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_USER + 2000, TMessage, HookMsg) END_MESSAGE_MAP(TForm); --- end --- Ловилка сообщений: --- Unit1.cpp --- void __fastcall TForm1::HookMsg(TMessage& Msg) { char s[100]; itoa(Msg.WParam, s, 10); MessageBox(NULL, s, "ну надо же!", MB_OK); } --- end --- Вот так.. |