Тема: AHK: Не прерывается SetTimer
Написал простенький скрипт, но в силу моей необразованности в данном языке, не могу прервать выполнение команд. Буду очень рад, если поможете оптимизировать его!
В идеале скрипт должен отправлять нажатие клавиш в ключевое окно, но так как отправка клавиш работает не так как мне нужно, то он печатает только в том случае, если ключевое окно и включен CapsLock. Проблема заключается в том, что скрипт доходит до конца и не прерывается на середине, если CapsLock выключен.
;Моменты основных ошибок буду помечать знаком <<<!>>>
SendKey(Key, Pause) { ;Скрипт на отправление нажатия клавиши в необходимое окно. Работает коряво, тат как печатает в ключевое окно скрипт лишь в том случае, если оно активно, но хоть так... Будет круто, если поможете и с этой проблемой, но это не самое главное.
ControlSend, , %Key%, WARFRAME
Sleep Pause
}
OutPoint(Script) { ;Скрипт для проверки активности ключевого окна и остановки скрипта, если активно побочное.
WinGet, WindowPid, pid, WARFRAME
WinGet, ActivepPid, pid, A
if !(ActivePid = WindowPid) {
SetTimer, %Script%, off ; Не прерывает Mirage4 <<<!>>>
}
}
~*vk14sc03A:: ;Запускаем скрипт Mirage4 если CapsLock включен и ВЫКЛЮЧАЕМ, если выключен.
SetTimer, Mirage4, % GetKeyState("CapsLock", "T") ? 0 : "off"; Не прерывает Mirage4 <<<!>>>
return
Mirage4: ; Сам скрипт
Name:="Mirage4"
SendKey("{vk53sc01F down}",625)
SendKey("{vk53sc01F up}",625)
OutPoint(Name)
SendKey("{vk57sc011 down}",625)
SendKey("{vk57sc011 up}",625)
OutPoint(Name)
SendKey("{vk34sc005 2}",2500)
OutPoint(Name)
SendKey("{vk34sc005}",625)
SetTimer, %Name%, % GetKeyState("CapsLock", "T") ? 0 : "off"; Не прерывает Mirage4 <<<!>>>
Exit