Форум: "WinAPI";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
ВнизФорма не обрабатывает сообщения, когда неактивна Найти похожие ветки
← →
Se (2005-12-14 08:06) [0]Я сделал HOOK. При его загрузке передаю в него handle окна.
При нажатии кнопки, HOOK посылает в handle сообщение:
sendmessage(WinHandle,WM_USER+10,wParam,lParam);
В модуле окна прописана процедура:
procedure WMHook(var Message: TMessage); message WM_USER+10;
Когда окно активно все работает. Но если переключиться на что-то другое, то процедура не вызывается. Хотя HOOK работает (я ставил внутри хука оператор messagebox, там где вызывается sendmessage, - при этом сообщение появляется в любом случае).
Основная программа написана на VCL.
← →
Digitman © (2005-12-14 08:18) [1]
> то процедура не вызывается
на основании чего сделано такое умозаключение ?
← →
Rouse_ © (2005-12-14 09:44) [2]messagebox в хуке? Оригинально. Система еще не падала?
← →
Leonid Troyanovsky © (2005-12-14 09:52) [3]
> Se (14.12.05 08:06)
> Когда окно активно все работает. Но если переключиться на
> что-то другое, то процедура не вызывается. Хотя HOOK работает
Если он и работает, то локально.
А для чего-то другого требуется глобальный хук (msdn go).
Кста, там, заоодно, познакомишься c interprocess communication, т.е.
как передать данные другому процессу (т.е., своему хуку в
чужом процессе) и получить их от него.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2005-12-14 09:54) [4]
> Rouse_ © (14.12.05 09:44) [2]
> messagebox в хуке? Оригинально. Система еще не падала?
Если б она падала от MessageBox, то ее б и не стоило пользовать.
--
Regards, LVT.
← →
Se (2005-12-14 10:32) [5]Ничего не падает. messagebox для отладки.
Передавать данные я хочу через sendmessage при этом форма должна получать данные в любом случае.
← →
Rouse_ © (2005-12-14 10:45) [6]
> Если б она падала от MessageBox, то ее б и не стоило пользовать.
Хм, WH_DEBUG в хуке в библиотеке и при поступлении сообщения MessageBox... Сообщение по цепочке хуков до закрытия модальноко окна не должно быть передано и соответственно все стоит :)
← →
VirEx © (2005-12-14 17:48) [7]дык может поймать событие Application.OnIddle (вроде так называется)
← →
Se (2005-12-17 09:42) [8]Не работает. Хотя я может не знаю как правильно использовать OnIddle.
В обработчике я написал PeekMessage.
← →
Igor_thief (2005-12-18 12:38) [9]RegisterWindowMessage или CallBack функция.
← →
Se (2005-12-19 19:56) [10]CallBack функция в основной программе ведет себя так же (не обрабатывается, когда форма не активна)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.017 c