Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.014 c
15-1140374398
ArtemESC
2006-02-19 21:39
2006.03.12
Как "замереть" по таймеру...


15-1139920034
Alexey V.
2006-02-14 15:27
2006.03.12
Как такое делается? Впервые такое встретил


6-1131389668
websqlneeder
2005-11-07 21:54
2006.03.12
Как со страницы с фреймами на лету убрать один фрейм не нарушая


11-1121017425
Serg777
2005-07-10 21:43
2006.03.12
WS_POPUP и ListBox = постоянная перерисовка


15-1140027889
Yegorchic
2006-02-15 21:24
2006.03.12
Математический сайт





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский