Тема: AHK: Выполнить определенные действия по нажатию и отпусканию клавиши
В общем, вот скрипт. И до меня не доходит, что все-таки я делаю неправильно:
Joy4::
{
Send {R Down}
Sleep, 50
Send {R Up}
Sleep, 200
Send {F Down}
Sleep, 50
Send {F Up}
Sleep, 200
Send {Left Down}
Sleep, 50
Send {Down Down}
Sleep, 300
Send {Left Up}
Sleep, 50
Send {Down Up}
Sleep, 50
Send {G Down}
Keywait, Joy4, T5
Send {G Up}
}
Return
Нужно, чтобы по нажатию хоткея жалась кнопка R, через 200 мс жалась кнопка F, еще через 200 мс зажимались кнопки Left и down и через 300 мс эти две кнопка отпускались и после этого кнопка G оставалась в нажатом состоянии до отпускания Joy4 или до истечения 5 секунд(T5). И вроде как все правильно я написал, но скрипт работает неправильно. Вместо того, чтобы зажимать кнопки(например, Left и Down зажать на 300 мс или зажать G до отпускания Joy4) они просто нажимаются один раз.
Вот что у меня нажимается в блокноте, когда я зажимаю Joy4 на 5 секунд:
RGF
А должно быть что-то вроде:
RGGGGGGGGGGGGGGF
Как я понимаю, почему-то команды "Send {кнопка Down}" работают неправильно. И вместо зажимания кнопки просто один раз тыкают её т.е. фактически посылают просто "Send {кнопка}"
Версия AHK: 1.1.05.01
Помогите решить проблему, пожалуйста.
Еще вот по-другому попробовал сделать:
SetTimer, Rr, 100
Rr:
{
GetKeyState, JState, Joy4
if JState = D
{
if RStart = 1
{
Send {R Down}
Sleep, 100
Send {F Down}
Sleep, 100
Send {T Down}{Y Down}
Sleep, 3000
RState = 1
RStart = 0
}
Send {G Down}
}
else if JState = U
{
if RState = 1
{
Send {R Up}
Send {F UP}
Send {G Up}
RState = 0
}
}
else
{
Return
}
}
Return
Joy4::
{
RStart = 1
}
Return
Тут и последовательность нажатий клавиш другая... Но самое важное это задержки и зажатие клавиш. А они и в первом и во втором варианте не зажимаются, а только нажимаются один раз. Как сделать так, чтобы они зажимались, а не просто нажимались? Такое ощущение, что Down теперь ничего не значит.