Suspend Permit только отмечает текущий поток как не подлежащий приостановке, на сами хоткеи это не влияет.
Эта строка не очень нужна, т.к. поток, начинающийся с команды
Suspend и так не подлежит приостановке.
Pause Toggle замораживает
текущий поток. Вызов хоткеев создаёт новые, незамороженные потоки.
Вариант 1: только Suspend.
Отключает/включает хоткеи по нажатию MButton, но их потоки продолжат работу, пока не будут отпущены клавиши
A/
D.
Code: Select all
...
MButton::
Suspend Toggle
Return
Вариант 2: с дополнительной переменной.
Code: Select all
mouseXY(x,y)
{
DllCall("mouse_event",short,1,short,x,short,y,short,0,short,0)
}
strafeKeysOn := True
*~$A::
while GetKeyState("A","P") && strafeKeysOn
{
mouseXY(-20,0) ;
Sleep 5 ;
}
return
*~$D::
while GetKeyState("D","P") && strafeKeysOn
{
mouseXY(20,0) ;
Sleep 5 ;
}
return
MButton::
strafeKeysOn := Not strafeKeysOn
Return