Тема: AHK: Самый быстрый способ перехвата, а также отправки нажатий клавиш?
Понадобился автокликер. Вначале набросал код дефолтного автокликера и забиндил на R:
DownTime := 80
UpTime := 10
*$~vk01:: ; LMB
LOOP
{
Send {vk52 Down} ; R key
Sleep %DownTime%
Send {vk52 Up} ; R key
Sleep %UpTime%
if !GetKeyState("vk01", "P") ; LMB
break
}
Return
Который работает достаточно быстро в большинстве случаев, но в моем случае нужен более быстрый автокликер. Также были проблемы со стабильностью работы в приложении(в приложении используется raw input) и таймингами, то недостаточно быстро отправлялись нажатия, то наоборот нажатий было слишком много.
Изменил Send на SendInput, и скрипт начал работать намного более стабильно(на глаз - идеально в плане стабильности и таймингов нажатий), но осталась еще одна серьезная проблема - это задержка при нажатии ЛКМ т.е. при активации скрипта в сравнении с тем, когда скрипт не используется(где-то 50ms разница).
Заменил бинд с R на ЛКМ в скрипте, а также немного изменил логику работы:
DownTime := 80
UpTime := 10
*$~vk01::
LOOP
{
Sleep %DownTime%
SendInput {vk01 Up}
Sleep %UpTime%
if !GetKeyState("vk01", "P")
break
SendInput {vk01 Down}
}
Return
Чтобы AHK не блокировал нажатие ЛКМ и функция в приложении активировалась при оригинальном нажатии ЛКМ, а не при помощи скрипта.
На глаз задержка(лаг активации функции в приложении) при использовании скрипта отстутствует в сравнении с тем, когда скрипт не спользуется, работает стабильно в плане таймингов.
Но вопрос остался. Знатоки, подскажите, пожалуйста, как можно ускорить работу скрипта: уменьшить время активации скрипта(лаг) и увеличить скорость отправки нажатий(не время между отправкой нажатий)?
Всем заранее спасибо за советы!