Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: CL | DM;

Вниз

Форма не обрабатывает сообщения, когда неактивна   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.055 c
2-1140602014
MIXER
2006-02-22 12:53
2006.03.12
печать quick report


15-1140191596
Vendict
2006-02-17 18:53
2006.03.12
Передача параметра процедуре по ссылке в ассемблере


2-1140520736
TrainerOfDolphins
2006-02-21 14:18
2006.03.12
Назначение обработчика события потомку класса


15-1140184660
yanval
2006-02-17 16:57
2006.03.12
IEEE сколько то там


4-1135083663
morik
2005-12-20 16:01
2006.03.12
SendMessage и Double