Привет.
Видимо, нужно убирать курсор.
Можно так же попробовать манипулировать страницей браузера отправляя ей оконные сообщения, словно бы происходит то же самое, что обычно приходится делать мышкой:
while (true) {
if (GetKeyState("sc10")) { ; Кнопка Q
while (GetKeyState("sc10"))
Sleep, 10
MouseGetPos, myX, myY
;Send {sc1D down} ; Ctrl - открывать ссылки в новой вкладке
SendLclk(myX, myY, Hget(myX, myY)) ; Сообщает клик
;Send {sc1D up}
} else if (GetKeyState("sc11")) { ; Кнопка W
MouseGetPos, myX, myY
SendWheel(myX, myY, Hget(myX, myY), 2, 1)
} else if (GetKeyState("sc1F")) { ; Кнопка S
MouseGetPos, myX, myY
SendWheel(myX, myY, Hget(myX, myY), 2, -1)
} else if (GetKeyState("sc1E")) { ; Кнопка A
MouseGetPos, myX, myY
SendHscroll(Hget(myX, myY), 0)
} else if (GetKeyState("sc20")) { ; Кнопка D
MouseGetPos, myX, myY
SendHscroll(Hget(myX, myY), 1)
}
sleep 50
}
; Для CoordMode, Mouse, Screen
SendLclk(new_x, new_y, varControl) {
WinGetPos, hw_x, hw_y,,, ahk_id %varControl%
l_param := % (new_x - hw_x) + ((new_y - hw_y) * 65536)
SendMessage, 0x0201, 0x0001, %l_param%, , ahk_id %varControl%
sleep 50
SendMessage, 0x0202, 0x0000, %l_param%, , ahk_id %varControl%
}
SendRclk(new_x, new_y, varControl) {
WinGetPos, hw_x, hw_y,,, ahk_id %varControl%
l_param := % (new_x - hw_x) + ((new_y - hw_y) * 65536)
SendMessage, 0x0204, 0x0002, %l_param%, , ahk_id %varControl%
sleep 50
SendMessage, 0x0205, 0x0000, %l_param%, , ahk_id %varControl%
}
; Скролит окно. По умолчанию вверх, со скоростью = speed. Вниз => последний параметр = -1
SendWheel(new_x, new_y, varControl, speed := 1, route := 1) {
Scroll := (speed*100*route)<<16
WinGetPos, hw_x, hw_y,,, ahk_id %varControl%
l_param := % (new_x - hw_x) + ((new_y - hw_y) * 65536)
SendMessage, 0x20A, %Scroll%, %l_param%, , ahk_id %varControl%
}
; Скролит окно. route = 0 - вправо, route = 1 - влево.
SendHscroll(varControl, route) {
SendMessage, 0x114, %route%,,,ahk_id %varControl%
}
; Возвращает хендл окна по координатам
Hget(x, y) {
return % DllCall("WindowFromPoint", "int64", x & 0x00000000FFFFFFFF | y<<32)
}
Кнопки, которые ожидаются в теле цикла - подписаны. Наводишь курсор на элемент, давишь кнопку, смотришь результат, модифицируешь под свои нужды.
Так же, есть официальное утверждение, что следует пользовать "PostMessage" вместо "SendMessage", так что стоит иметь это ввиду, если "что-то пойдёт не так". Но у меня в Chrome работает без проблем.