![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WndProc и ловушки
DelphiLexx © (2004-10-25 13:06:00)При установке Hook'a на отдельный поток (причем Hook хранится в отдельной dll'ке - Hook.dll), я отлавливаю все его сообщения за счет того, что dll'ка внедряется в его адресное пространство, далее в главном Unit'e я переопределяю процедуру WndProc, которая ждет сообщения WM_COPYDATA, которая отправляется из Hook.dll. Вообщем сообщения чужуго окна замечательно отлавливаются, но при это в моей форме не работает закрытие - крестик, развертывание, свертование. Application.ProcessMessage не помагает. Как от этого избавится
DelphiLexx (2004-10-25 17:30:00) [1]TUser код, хотя бы суть, не мог бы отобразить
TUser (2004-10-25 14:04:00) [2]Надо посылать сообщения не главной форме, а отдельному потоку. Только там их ловить сложнее
DelphiLexx (2004-10-25 13:53:00) [3]Да я уже над этим думал. Но как вынести WndProc главной формы в отдельный поток.
TUser (2004-10-25 13:31:00) [4]Может быть - если основной поток занят постоянно тем, что обрабатывает твои копидаты - то гл. форма не закроется. Тогда вынеси это дело в отд. поток.
А код все-таки стоит показать.
DelphiLexx (2004-10-25 13:19:00) [5]Переопредел через override, в самой процедре вызываю inherited.
Пробовал и так: procedure ...; message wm_copydata.
Еще хочу сказать что сообщения приходят очень часто. Может быть из-за этого.
TUser (2004-10-25 13:07:00) [6]Покажи - как переопределил WndProc. Надо писать else inherited. А вообще - на форме проще написать procedure ...; message wm_copydata