-
SKIPtr © (12.01.13 18:49) [20]
> Styx (12.01.13 17:22) [19]
вот в интернете нашел
WH_GETMESSAGE возникает когда сообщение в очереди
а действие мышы похоже в очередь не ставиться
и пишут что поможет WH_CALLWNDPROC но он не может поменять сообщения
но мне этого и не надо
спасибо пойду пробывать -
Игорь Шевченко © (12.01.13 19:42) [21]
> а действие мышы похоже в очередь не ставиться
Ставится. Действия мыши и клавиатуры кроме как в очередь поставлены быть не могут -
> SKIPtr © (12.01.13 16:24) [18]
> передавать параметры с хука програме мне больше нравиться
> через сообщения а не через файл
ты своим кодом кстати удваиваешь количество сообщений в системе в 2 раза. Отделял бы нужные тебе окна от остальных, а то на каждое сообщение любого окна генерируется еще одно твоему окну, а потом все лавинообразно растет. -
SKIPtr © (12.01.13 20:34) [23]
> ты своим кодом кстати удваиваешь количество сообщений в
> системе в 2 раза.
по логике так и должно быть
но я смотрю на отщет о том что передано
я не вижу дестрибьютор окна в котором выводятся сообщения
получаеться окно само себе не передает -
> SKIPtr ©
я кстати посмотрел WM_WINDOWPOSCHANGED, WM_DESTROY, WM_SIZE, WM_CLOSE, WM_MOVE с помощью WH_GETMESSAGE не перехватываются, но перехватываются с помощью WH_CALLWNDPROC -
> SKIPtr © (12.01.13 20:34) [23]
> получаеться окно само себе не передает
если бы тебе сообщения не посылались, то ты бы вообще ничего не получал из функции hokm(), сообщений в 2 раза больше и становится в общем и всё еще замедляется так как фактически синхронизируется с твоим окном функцией SendMessage(), которая блокирует поток в котором выполняется hokm() -
SKIPtr © (13.01.13 09:36) [26]это пока программа для просмотра
конечная программа будет проверять дистребьютор сообщения на соответствие окна по его названию
это даст возможность что ответ будет посылать только та программа для которой писалась ловушка -
SKIPtr © (14.01.13 04:45) [27]
> сообщений в 2 раза больше и становится в общем и всё еще
> замедляется так как фактически синхронизируется с твоим
> окном функцией SendMessage()
вот с хуком WH_CALLWNDPROC окажываеться возникает эта проблема
в хуке сделал проверку на соответствие дистребьютора в сообщении с дистребьютором окна моей програмы и если они разные то отсылаю сообщение
но обнаружил в коде
wnd := PMsg(lParam)^.hwnd;
b := PMsg(lParam)^.message;
дистребьютор и сообщение поменялись местами
> WM_WINDOWPOSCHANGED, WM_DESTROY, WM_SIZE, WM_CLOSE, WM_MOVE
> с помощью WH_GETMESSAGE не перехватываются, но перехватываются
> с помощью WH_CALLWNDPROC
и WH_CALLWNDPROC то же не перехватилось
когда сообщений пришли дугие и вместе с ним приходили кода сообщений как при хуке WH_CBT
проверю приходит ли эти сообщеня после выполнения действия
если нет то после сообщения WH_CBT буду просто в таймере проверять изменения кординат