Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Форма не обрабатывает сообщения, когда неактивна [D5, D6, D7, Win95/98, Win2k, WinXP]


Se ©   (2005-12-14 08:06:00) 

Я сделал HOOK. При его загрузке передаю в него handle окна.
При нажатии кнопки, HOOK посылает в handle сообщение:
sendmessage(WinHandle,WM_USER+10,wParam,lParam);

В модуле окна прописана процедура:
procedure WMHook(var Message: TMessage); message WM_USER+10;

Когда окно активно все работает. Но если переключиться на что-то другое, то процедура не вызывается. Хотя HOOK работает (я ставил внутри хука оператор messagebox, там где вызывается sendmessage,  - при этом сообщение появляется в любом случае).
Основная программа написана на VCL.


Se   (2005-12-19 19:56:00) [1]

CallBack функция в основной программе ведет себя так же (не обрабатывается, когда форма не активна)


Igor_thief   (2005-12-18 12:38:00) [2]

RegisterWindowMessage или CallBack функция.


Se   (2005-12-17 09:42:00) [3]

Не работает. Хотя я может не знаю как правильно использовать OnIddle.
В обработчике я написал PeekMessage.


VirEx   (2005-12-14 17:48:00) [4]

дык может поймать событие Application.OnIddle (вроде так называется)


Rouse_   (2005-12-14 10:45:00) [5]


> Если б она падала от MessageBox, то ее б и не стоило пользовать.

Хм, WH_DEBUG в хуке в библиотеке и при поступлении сообщения MessageBox... Сообщение по цепочке хуков до закрытия модальноко окна не должно быть передано и соответственно все стоит :)


Se   (2005-12-14 10:32:00) [6]

Ничего не падает. messagebox для отладки.
Передавать данные я хочу через sendmessage при этом форма должна получать данные в любом случае.


Leonid Troyanovsky   (2005-12-14 09:54:00) [7]


> Rouse_ ©   (14.12.05 09:44) [2]
> messagebox в хуке? Оригинально. Система еще не падала?


Если б она падала от MessageBox, то ее б и не стоило пользовать.

--
Regards, LVT.


Leonid Troyanovsky   (2005-12-14 09:52:00) [8]


> Se   (14.12.05 08:06)  

> Когда окно активно все работает. Но если переключиться на
> что-то другое, то процедура не вызывается. Хотя HOOK работает


Если он и работает, то локально.
А для чего-то другого требуется глобальный хук (msdn go).
Кста, там, заоодно, познакомишься c  interprocess communication, т.е.
как передать данные другому процессу (т.е., своему хуку в
чужом процессе) и получить их от него.

--
Regards, LVT.


Rouse_   (2005-12-14 09:44:00) [9]

messagebox в хуке? Оригинально. Система еще не падала?


Digitman   (2005-12-14 08:18:00) [10]


> то процедура не вызывается


на основании чего сделано такое умозаключение ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо