Тема: AHK: Хатка джойстика и мышь
Мне нужно подкоректировать скрипт. Использую хатку джойстика как мышь. Работает. Мне нужно, чтобы когда я изменяю угол хатки(значение не -1) одновременно мышь смещалась в соответствующую сторону и зажималась какая-то кнопка. Допустим, R. Но когда хатка возвращается на центральную позицию(значение -1), кнопка "R" оставалась зажатой. Действие "R up" надо повесить на другой хоткей.
Вот полный скрипт:
#SingleInstance force
#InstallKeybdHook
#InstallMouseHook
HatDelay = 1
HatMoveBy = 10
HatMoveSpeed = 0
SetTimer, HatMouse, %HatDelay%
SetTimer, JoyPOV1, %HatDelay%
flag := 0
JoyPOV1:
if %flag% = 1
{
Send {R Down}
}
else
{
Return
}
Return
Joy1::
{
flag := 0
}
Return
HatMouse:
GetKeyState, JoyPOV, JoyPOV
if JoyPOV = -1 ; No angle.
{
}
else
{
flag := 1
}
if JoyPOV = 0 ; Up
{
MouseMove,0,-%HatMoveBy%,%HatMoveSpeed%,R
}
else if JoyPOV = 4500 ; up/right
{
MouseMove,%HatMoveBy%,-%HatMoveBy%,%HatMoveSpeed%,R
}
else if JoyPOV = 9000 ; right
{
MouseMove,%HatMoveBy%,0,%HatMoveSpeed%,R
}
else if JoyPOV = 13500 ; right/down
{
MouseMove,%HatMoveBy%,%HatMoveBy%,%HatMoveSpeed%,R
}
else if JoyPOV = 18000 ; down
{
MouseMove,0,%HatMoveBy%,%HatMoveSpeed%,R
}
else if JoyPOV = 22500 ; down/left
{
MouseMove,-%HatMoveBy%,%HatMoveBy%,%HatMoveSpeed%,R
}
else if JoyPOV = 27000 ; left
{
MouseMove,-%HatMoveBy%,0,%HatMoveSpeed%,R
}
else if JoyPOV = 31500 ; left/up
{
MouseMove,-%HatMoveBy%,-%HatMoveBy%,%HatMoveSpeed%,R
}
return
Я не понимаю, что я делаю неправильно. Кажется, все правильно. Но кнопка R вообще не жмется. Работает только мышь. Можно вот тут:
if JoyPOV = -1 ; No angle.
{
}
else
{
flag := 1
}
Вместо "flag := 1" вписать "Send {R Down}" и тогда кнопка R будет работать, когда я буду смещать хатку, но она будет тут же отпускаться, когда я буду возвращать хатку в центральную позицию. А мне надо, чтобы кнопка отпускалась по хоткею отдельно.
Я никак не могу понять, что же я не так сделал. Вроде всё правильно. Если хатка на центре, то ничего не делать. Если хатка в другом положении, то установить значения для пер. "flag" 1. Тут же вступает другой таймер. Если flag = 1, тогда зажать кнопку R и держать. Если флаг неравно 1, то вернуться. Как только Joy1 нажмется после того, как хатка была смещенна, то кнопка R должна быть отпущенна. Но кнопка R даже не хочет жаться.
Помогите мне, пожалуйста. Не пойму где я ошибаюсь...