Remix55556, Приветствую.
Я написал реакцию на отпускание, а задержки проставил такие как в ТЗ.
Для справки.
1. Реакция на отжимании W — Hotkey ~vk57 Up, KeyDummy, On.
2. Реакция на нажатие W + (стрелка вверх) — Hotkey ~vk57 & Up, KeyDummy, On.
3. Желательно использовать разные обработчики, а не один — KeyDummy.
4. Дерективы UseHook/Critical/Thread, NoTimers — включать попарно.
5. Обработчик выхода OnExit, lEnd_AHK — не задействован.
;Скрипт не выгружается до явного определения
#Persistent
vExitCode := 0
OnExit, lEnd_AHK ; Ensure the cursor is made visible when the script exits.
;vk57/vk41/vk53/vk44 = W/A/S/D
;Срабатывает при отжимании клавиши W, но пропуская на вывод клавишу W
Hotkey ~vk57 Up, KeyDummy, On
;Срабатывает при отжимании клавиши A, но пропуская на вывод клавишу A
Hotkey ~vk41 Up, KeyDummy, On
;Срабатывает при отжимании клавиши S, но пропуская на вывод клавишу S
Hotkey ~vk53 Up, KeyDummy, On
;Срабатывает при отжимании клавиши D, но пропуская на вывод клавишу D
Hotkey ~vk44 Up, KeyDummy, On
Return
;#UseHook, On ;Заставляет скрипт использовать хук, разрешает самовызов клавиши и т.д.
;Critical ;Не позволяет другим потокам прерывать текущий поток, требуется редко
;Thread, NoTimers ;Снять комментарии, если есть в скрипте таймеры
KeyDummy:
tmp_ThisHotkey := A_ThisHotkey ;Запоминание отжатой клавиши, думаю что пригодится.
Sleep 10
Send {Shift Down}
Sleep 10 ;Требуется написать Sleep 25, так более верно
Send {Shift Up}
Return
;#UseHook, Off ;Заставляет скрипт использовать хук, разрешает самовызов клавиши и т.д.
;Critical , Off ;Не позволяет другим потокам прерывать текущий поток, требуется редко
;Thread, NoTimers, false ;Снять комментарии, если есть в скрипте таймеры
lEnd_AHK:
ExitApp
P.S. Скрипт получился большой из-за множества комментариев.
"На каждое действие есть равная ему противодействующая критика." Постулат ХарриссонаOS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019 Click to Download