Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PostMessage в клиент игры, Не получается сделать клик 
:(
    Опции темы
YAAP
Дата 14.1.2013, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.9.2007

Репутация: нет
Всего: нет



Искал решения - все пишут одно и то же, но не работает.
Задача - по таймеру отправлятьв  клиент игры события:
1) Нажатие мышки в опр. позиции
2) Нажании клавиш

Собственно, 2й пункт работает как надо, т.е. нажатия клавиш отправляются, а вот с мышкой воюю не первый час. 
Код

Handle := FindWindow(nil,'Game');

PostMessage(Handle, Wm_KeyDown, VK_F5, 1);

PostMessage(Handle, WM_LBUTTONDOWN,  0,  MakeLong(80,80));
PostMessage(Handle, WM_LBUTTONUP, 0,  MakeLong(80,80));




Через mouse_event отправить клик получилось, но очень хочу сделать именно по Handle.
зы: всякие spy++  показывают лишь одно окно, без дочерних
зыы: Была идея, что игра проверяет позицию курсора при клике и если не совпадает - игнор. 
Для обхода предварительно перед кликов ставил курсор в позицию клика - не помогло

зыыы: клиент игры запускается в оконном режиме!


Это сообщение отредактировал(а) YAAP - 14.1.2013, 20:34
PM MAIL   Вверх
kami
Дата 15.1.2013, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Код

PostMessage(Handle, WM_LBUTTONDOWN,  MK_LBUTTON,  MakeLong(80,80));
PostMessage(Handle, WM_LBUTTONUP, MK_LBUTTON,  MakeLong(80,80));


MK_LBUTTON = 1
PM MAIL WWW   Вверх
YAAP
Дата 15.1.2013, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.9.2007

Репутация: нет
Всего: нет



Цитата(kami @  15.1.2013,  10:41 Найти цитируемый пост)
MK_LBUTTON = 1 

Судя по MSDN wParam и должен содержать 
Код

MK_LBUTTON 0x0001  The left mouse button is down.


В любом случае если передавать 0 - так же никакого результата =)
зы: может быть причиной такого поведения то, что игра на DX?
PM MAIL   Вверх
kami
Дата 15.1.2013, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(YAAP @  15.1.2013,  11:44 Найти цитируемый пост)
В любом случае если передавать 0 - так же никакого результата 

А Вы не передавайте 0, как у Вас в коде, а передавайте 1 smile

Цитата(YAAP @  15.1.2013,  11:44 Найти цитируемый пост)
 может быть причиной такого поведения то, что игра на DX?

Может. Если приложение берет данные из (например) GetAsyncKeyState.
PM MAIL WWW   Вверх
YAAP
Дата 15.1.2013, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.9.2007

Репутация: нет
Всего: нет



Цитата(kami @  15.1.2013,  12:48 Найти цитируемый пост)
А Вы не передавайте 0, как у Вас в коде, а передавайте 1 

А я и передавал, не помагало =)


Цитата(kami @  15.1.2013,  12:48 Найти цитируемый пост)
Может. Если приложение берет данные из (например) GetAsyncKeyState. 


Код

The GetAsyncKeyState function works with mouse buttons. However, it checks on the state of the physical mouse buttons, not on the logical mouse buttons that the physical buttons are mapped to. 


Т.е. если приложение проверяет GetAsyncKeyState  - то логическое нажание без физического сделать не получится, верно? Как обойти?
Или в какую сторону дальше копать?
PM MAIL   Вверх
Qu1nt
Дата 15.1.2013, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 18
Всего: 50



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0978 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.