Главная страница
    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.049 c
2-1140508450
Сенокур Петя
2006-02-21 10:54
2006.03.12
Image.Picure.LoadFromFile почему падает?


2-1140533748
mozgan
2006-02-21 17:55
2006.03.12
Отображать ход копирования в progressbar


15-1140033510
Yeg
2006-02-15 22:58
2006.03.12
Геометрия - задача


3-1137401302
fishka
2006-01-16 11:48
2006.03.12
Запись картинки в DBF - файл


15-1139916584
ZeroDivide
2006-02-14 14:29
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский