[Win32] Эмуляция работы пользователя с мышью16.12.08 19:06 Автор: Vedrus <Serokhvostov Anton> Статус: Member Отредактировано 16.12.08 19:07 Количество правок: 2
Суть проблемы. Пишу бота для игры в шахматы, точнее уже написал для одной программы, а теперь адаптирую для другой. Этой другой оказалась игра на рамблере: http://games.rambler.ru/game/chess/.
---
хотя в другой программе работал. Здесь же, он поднимает шахматную фигуру, перемещает её, но опускать на доску не хочет. С чем это может быть связано?
Я наконец-то внял наставлениям amirul'а и HandleX и разобрасля с программой Spy++ (классная вещь!). Она выдаёт вот такую последовательность сообщений, когда я работаю с мышью "легально"
---
> Суть проблемы. Пишу бота для игры в шахматы, точнее уже > написал для одной программы, а теперь адаптирую для другой. > Этой другой оказалась игра на рамблере: > http://games.rambler.ru/game/chess/. > > Вот этот код здесь работать не хочет: >
---
> хотя в другой программе работал. Здесь же, он поднимает > шахматную фигуру, перемещает её, но опускать на доску не > хочет. С чем это может быть связано? > > Я наконец-то внял наставлениям amirul'а > и HandleX и разобрасля с программой > Spy++ (классная вещь!). Она выдаёт вот такую > последовательность сообщений, когда я работаю с мышью > "легально" >
---
> По аналогии с этим сформировал свои сообщения через > SendMessage, но желаемого результата так и недобился. > > Если кратко вопрос в следующем: как поднятую в рамблере > шахматную фигуру поставить туда, куда я хочу?
На худой конец и mouse_event сойдёт, но не хотелось бы её...17.12.08 02:04 Автор: Vedrus <Serokhvostov Anton> Статус: Member
На худой конец и mouse_event сойдёт, но не хотелось бы её использовать, т.к. тогда компьютер только игрой и будет занят, а хотелось бы чтобы за ним ещё что-то делать можно было.
C SendMessage так можно, главное мышь на окно с программой не наводить.
А чем SendInput лучше mouse_event?
А ты уверен - может, эта фигура по правилам шахмат - туда не ходит?16.12.08 22:17 Автор: Neznaika <Alex> Статус: Member
В общем я додумался до того, что в этом флеш клиенте стоит какая-то защита от автоматического нажатия мыши. Я обнаружил, что если перед началом эмуляции мыши нажать левой кнопкой на окно клиента, то дальше SendMessage и PostMessage прокатывает.
Плюс на другом флеш клиенте (правда не на браузерном, а на "программном") SendMessage и PostMessage работают на ура.
Обходное решение через mouse_event найдено, но общее решение через SendMessage и PostMessage продолжает интересовать, так что тему не закрываю.