![]() |
|
![]() ![]() ![]() |
|
dizzy1984 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
Доброе время суток. Хочу написать программку, передающую мне управление при клике мышки на определенном графическом элементе экрана. Написал хук, написал программку. Для уведомления программки хуком выбрал PostMessage. Сделал логирование. Начал проверять записи лога, обнаружил проблему при следующем сценарии действий : если кликнуть мышкой по окну, затем быстро переместить ее и снова кликнуть по тому же окну, образуется бесконечный цикл сообщений отправки и получения.
Вот как выглядит, если кликать медленно или быстро, но не двигая мышкой
Здесь первое сообщение пишется в хуке, второе в программе. Сколько кликнул — столько и пар сообщений (хотя если быстро кликать некоторые проглатываются, видимо, это уже происходит на уровне системы). Ну а при описанной выше ситуации лог такой же, но постоянно растет, пока не сделать alt-tab. Тогда он останавливается... Работаю с хуками второй раз, не могу представить в чем тут проблема. Есть догадка, что в описанном случае PostMessage из хука вызывается до обработки программой первого посланного PostMessage (из-за синхронной обработки перемещения мышки), однако, по моим представлениям, он просто мирно добавится в свою очередь и будет там вторым... лежать. Прошу помощи! Вот код хука
Вот программки
Это сообщение отредактировал(а) dizzy1984 - 13.1.2013, 08:37 |
||||||
|
|||||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 1 Всего: 39 |
В коде нет ничего такого из за чего могут быть зацикливания.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 1 Всего: 39 |
Да и избавься уже от этого, это плохой тон
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
Почему?
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Действительно, почему? Не переносимо? Ну так если не надо переносить... Расшаренная память бывает очень удобна...
-------------------- ... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |