Что нового

[Мышь, клавиатура] Использование ControlClick с ControlGetHandle

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Fallen
пытаюсь сделать клик в открытом окне
Ну так попробуйте перед ControlClick активировать окно и переместить курсор в точку клика с помощью MouseMove - и посмотрите, что будет. Если сработает - сместите курсор на пиксель и снова проверьте. Так вы узнаете, считывает ли игра положение курсора или нет.
 

Yura

Знающий
Сообщения
36
Репутация
7
В общем посмотрел я на это окно сам и попробовал покликать. Игра считывает положение реального курсора и рисует свой курсор по этим координатам. Если поводить мышкой над неактивным окном, то хорошо видно 2 курсора: один обычный, второй игровой. Причем игровой при быстрых движениях отстает- значит положение считывается с небольшой частотой.
MouseClick работает. ControlClick или через сообщение окну:
Код:
Func _MouseLeftClick($hWnd, $X1, $Y1, $Sleep)
	_WinAPI_PostMessage($hWnd, $WM_MOUSEMOVE, 0, _WinAPI_MakeLong($X1, $Y1))
	_WinAPI_PostMessage($hWnd, $WM_LBUTTONDOWN, 0, _WinAPI_MakeLong($X1, $Y1))
	_WinAPI_PostMessage($hWnd, $WM_SETCURSOR, $hWnd, _WinAPI_MakeLong($HTCLIENT, $WM_LBUTTONDOWN))
	Sleep($Sleep)
	_WinAPI_PostMessage($hWnd, $WM_LBUTTONUP, 0, _WinAPI_MakeLong($X1, $Y1))
	_WinAPI_PostMessage($hWnd, $WM_SETCURSOR, $hWnd, _WinAPI_MakeLong($HTCLIENT, $WM_LBUTTONUP))
EndFunc

не работает, даже если перед этим переместить курсор в ту же точку через MouseMove.
Можно ли эмулировать нажатие в такое окно, при этом его не активируя и не забирая у пользователя мыши- честно, не знаю.
 
Автор
F

Fallen

Новичок
Сообщения
39
Репутация
0
[quote author=Yura]Можно ли эмулировать нажатие в такое окно, при этом его не активируя и не забирая у пользователя мыши- честно, не знаю.[/quote]
Спасибо огромное за помощь, за проделанную работу. Правда, очень благодарен.

Будут у кого какие-нибудь предложения? Как это беду победить? ):
 

dstasv

Новичок
Сообщения
45
Репутация
1
Fallen сказал(а):
Будут у кого какие-нибудь предложения? Как это беду победить? ):

Поставить виртуалку ВМ и в ней запускать игру (игры), и тогда сами сможете работать.
А в виртуалке уже активировать, двигать мышки в нужном окне игры.
Ну или же запускать свои игры на отведенном для этого компьютере.
 
Автор
F

Fallen

Новичок
Сообщения
39
Репутация
0
dstasv сказал(а):
Поставить виртуалку ВМ и в ней запускать игру (игры), и тогда сами сможете работать.
А в виртуалке уже активировать, двигать мышки в нужном окне игры.
Ну или же запускать свои игры на отведенном для этого компьютере.
Спасибо за предложение, я и так это делаю) Но хотелось бы выяснить как обойтись без этого при помощи нашего :IL_AutoIt_1: любимого Autoit-a)
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Автоит в первую очередь средство для автоматизации Windows а не игр. Не стоит пытаться выжать из него больше чем оно может :smile:
 
Верх