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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2014, 00:11   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Эмуляция нажатия ЛКМ в приложении под мышкой

Пробовал вот это:

SetCursorPos(x1,y1);
Application.ProcessMessages;
sleep(1300);
Mouse_Event( MOUSEEVENTF_LEFTDOWN, x1,y1,0,0);
Application.ProcessMessages;
sleep(500);
Mouse_Event( MOUSEEVENTF_LEFTUP, x1,y1,0,0);
Application.ProcessMessages;
sleep(1300);


В различных комбинациях задержек. Получается чер ти што. В одном приложении жмется без проблем( другое приложение делфи для подсчета скорости нажатия на кнопку), а в нужном мне то вообще не жмется то жмется непонятно по какому закону- то жмется то не жмется.

Кто может дать работоспособный код. При этом желательно чтобы он был быстрый на нажатие до 0.5 сек на нажатие.

Возможно по какойто причине происходит потеря фокуса, не знаю. Пробовал убирать Application.ProcessMessages; вразумительной работы не получил.
Illusiony вне форума Ответить с цитированием
Старый 09.05.2014, 00:44   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...уберите слипы, перейдите на SendMessage(). И да, приложение приложению - рознь. Об чем речь конкретно? Об игре с выводом через DirectX, скайпе, браузерке?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 09.05.2014, 03:49   #3
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Application.ProcessMessages в данном случае бесполезен. Советую почитать о случаях его применения.
Цитата:
При этом желательно чтобы он был быстрый на нажатие до 0.5 сек на нажатие
Временной интервал двойного клика определяется настройками Win. Как настроено, так и делаешь. Быстрее настройки не получится.

Последний раз редактировалось doktor255; 09.05.2014 в 03:53.
doktor255 вне форума Ответить с цитированием
Старый 09.05.2014, 11:08   #4
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Нужно нажимать на игровом приложении - клиенте MMDOC. Что оно использует для прорисовки DirectX или нет не знаю.
Приложение в оконном режиме работает. Поэтому мне просто нужно чтобы ЛКМ нажималось в на текущем окне, в данном случае в окне MMDOC. А по Вашему совету мне еще нужно узнавать хэндл окна при применении SendMessage().

Узнаю хэндл окна и посылаю сообщение на клик:
procedure TForm1.Button1Click(Sender: TObject);
var h:hwnd;pchar;mk:Cardinal;index:in teger;
begin
sleep(1000);
h:=GetWindow(GetForegroundWindow,GW _HWNDFIRST);
getmem(p,2000);
GetWindowText(h,p,mk);
while (pos('Might & Magic : Duel of Champions - Multiplayer Ranked Game - RendezVous',p)=0)and(h<>0) do begin
h:=GetWindow(h,GW_HWNDNEXT);
// GetWindowText(h,p,mk);
end;
for index:=1 to 10 do begin
SetCursorPos(1052,719);
SendMessage(h, WM_LBUTTONDOWN,MK_LBUTTON,MAKELPARA M(1052,719));
SendMessage(h, WM_LBUTTONUP,MK_LBUTTON,MAKELPARAM( 1052,719));
edit3.Text:=inttostr(h);

end;
end;

Все равно ничего не нажимается

Последний раз редактировалось Illusiony; 09.05.2014 в 14:38.
Illusiony вне форума Ответить с цитированием
Старый 09.05.2014, 16:37   #5
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

есть идеи?
Illusiony вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача нажатия ЛКМ в другое окно Kazik Общие вопросы Delphi 4 18.04.2013 01:16
Вывод MessageBox после тройного и более нажатия ЛКМ RAZOR1703 Win Api 10 18.10.2011 19:23
Эмуляция нажатия клавиш KamiMAN Общие вопросы Delphi 5 13.03.2011 06:24
Эмуляция нажатия клавиши в любом активном приложении Marsel737 Общие вопросы Delphi 1 19.03.2010 14:44
Перехват нажатия ЛКМ [Delphi/Hooks] anGeee Win Api 1 07.12.2009 00:58