Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2011, 16:07   #1
SunnyDay
 
Регистрация: 11.07.2009
Сообщений: 4
По умолчанию Клик в чужом приложении

Тем таких много, вариантов решения тоже, я попробовал два, но оба не работают так, как надо. Итак:

Код:
  h:=FindWindow(nil,'Form1');
  SendMessage(h,WM_LBUTTONDOWN, MK_LBUTTON,dw);
  SendMessage(h,WM_LBUTTONUP,MK_LBUTTON,dw);
Тут клик происходит на форме, хэндл которой и передается, а должен на кнопке, которая на этой форме сидит. Хэндл самой кнопки передать нельзя, потому что в реальных условиях будут известны только координаты. Хэндл приложения тоже не подходит - клика вобще не происходит.

Код:
mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN,p.X,p.Y,0,0);
  mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP,p.X,p.Y,0,0);
Клик происходит там, где находится курсор мышки в данный момент, хотя в функции явно передаются координаты, где он должен произойти. Менять координаты мыши не хорошо, должен быть способ "кликнуть", не мешая пользователю.
Я уже в отчаянии, перепробовал много много всего, но решения нет...
SunnyDay вне форума Ответить с цитированием
Старый 30.10.2011, 16:18   #2
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,051
По умолчанию

скачайте исходник программы UOPilot там много всего полезного можно подсмотреть
Noor вне форума Ответить с цитированием
Старый 30.10.2011, 16:23   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Хэндл самой кнопки передать нельзя, потому что в реальных условиях будут известны только координаты.
если не игра, то вполне можно, ибо очень редко меняеться состав окна.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.10.2011, 16:25   #4
SunnyDay
 
Регистрация: 11.07.2009
Сообщений: 4
По умолчанию

А если игра? Должен же быть способ эмулировать клик только по координатам?
SunnyDay вне форума Ответить с цитированием
Старый 30.10.2011, 16:28   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

многие игры игнорируют клики если окно не активно.
и надо знать какое окно принимает сообщения о кликах, нужно изучить состав окна, составное оно, или нет.
про DirectInput молчу.

Цитата:
Должен же быть способ эмулировать клик только по координатам?
нет не должно быть в общем то.
GUI же.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 30.10.2011 в 16:34.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2011, 15:12   #6
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,051
По умолчанию

Если для игр нужно, то смотрите в сторону связки Autoit+Delphi (AutoItX )
Autoit для игр самое то, можно сделать клик с использованием курсора, а можно и без задействования. Есть примеры распознавания движущегося текста в игре (описание моба). Для бото-мейкеров самое то

Последний раз редактировалось Noor; 31.10.2011 в 15:15.
Noor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прочикать чекбоксы в чужом приложении offname C# (си шарп) 2 27.08.2011 14:13
Вызвать хоткей в чужом приложении. Gypsy Общие вопросы Delphi 6 27.02.2010 11:26
Свою окно в чужом приложении russian-stalker Win Api 2 27.08.2009 11:04
Окно в чужом приложении? Volkogriz Общие вопросы Delphi 3 10.02.2009 18:22