Вниз
Скачать: CL | DM;

WndProc и ловушки   Найти похожие ветки 

← →
DelphiLexx ©   (2004-10-25 13:06) [0]

При установке Hook"a на отдельный поток (причем Hook хранится в отдельной dll"ке - Hook.dll), я отлавливаю все его сообщения за счет того, что dll"ка внедряется в его адресное пространство, далее в главном Unit"e я переопределяю процедуру WndProc, которая ждет сообщения WM_COPYDATA, которая отправляется из Hook.dll. Вообщем сообщения чужуго окна замечательно отлавливаются, но при это в моей форме не работает закрытие - крестик, развертывание, свертование. Application.ProcessMessage не помагает. Как от этого избавится


← →
TUser ©   (2004-10-25 13:07) [1]

Покажи - как переопределил WndProc. Надо писать else inherited. А вообще - на форме проще написать procedure ...; message wm_copydata


← →
DelphiLexx ©   (2004-10-25 13:19) [2]

Переопредел через override, в самой процедре вызываю inherited.
Пробовал и так: procedure ...; message wm_copydata.
Еще хочу сказать что сообщения приходят очень часто. Может быть из-за этого.


← →
TUser ©   (2004-10-25 13:31) [3]

Может быть - если основной поток занят постоянно тем, что обрабатывает твои копидаты - то гл. форма не закроется. Тогда вынеси это дело в отд. поток.

А код все-таки стоит показать.


← →
DelphiLexx ©   (2004-10-25 13:53) [4]

Да я уже над этим думал. Но как вынести WndProc главной формы в отдельный поток.


← →
TUser ©   (2004-10-25 14:04) [5]

Надо посылать сообщения не главной форме, а отдельному потоку. Только там  их ловить сложнее


← →
DelphiLexx ©   (2004-10-25 17:30) [6]

TUser код, хотя бы суть, не мог бы отобразить



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.044 c
1-1097385449
focor
2004-10-10 09:17
2004.11.07
mousewheel


11-1082389428
Stefan
2004-04-19 19:43
2004.11.07
Глюк в DLL с формой (пример с сайта) ???


14-1097821651
П7
2004-10-15 10:27
2004.11.07
Души умерших файлов


9-1088939185
Werwolf
2004-07-04 15:06
2004.11.07
Анимация в играх


1-1098717522
atmospheric
2004-10-25 19:18
2004.11.07
WM_CHAR в XP и 2000 ?




   Наверх