Вам не хватает Return
с, чтобы остановить выполнение кода.
Каждая метка горячей клавиши должна заканчиваться Return
, чтобы она не перетекла к чему-то нежелательному (в вашем случае, к следующей горячей клавише). label).
Ваша секция auto-execute также просачивается, но в данном случае это не имеет значения, так как выполнение кода встречает только функции перед остановкой с помощью метки горячей клавиши. .
Кроме того, рекомендуется использовать SendInput вместо обычной отправки.
И перенос K
в { }
ничего не даст вам, и это может даже привести к нежелательному поведению в особые случаи (см. документацию по этому вопросу).
Перенос символа в { }
должен выполняться только для экранирования символов со специальным значением в команде отправки, таких как +
(shift) или !
(Alt ) (также прочитайте документацию для полного объяснения этого).
Вот пример добавления пропущенных Return
s в ваш скрипт:
fly := True
return
Start()
{
Global fly
fly := True
While (fly == True)
{
SendInput, {Shift down}{W down}
Sleep, 10
}
}
End()
{
Global fly
fly := False
SendInput, {Shift up}{W up}
}
MButton::
SendInput, K
Start()
Return
+XButton2::
SendInput, K
End()
Return