Тема: AHK: Действия при двойном нажатии Ctrl, и не только.
Здравствуйте, являюсь владельцем Macbook за которым часто провожу время. При переходе на Windows, меня мучает переключение языка, сочетанием клавиш. Alt+Shift. (Punto Switcher не предлагать)
В макбуке есть отдельная кнопка для этого, при нажатии на которую, переключается язык.
Подскажите, пожалуйста, скрипт. Чтобы при двойном нажатии на Ctrl. Левый. Нажималось сочетание клавиш Alt+Shift. (Левые)
Также в макбуке. Есть кнопка для голосового ввода текста. Возможно ли сделать, чтобы при двойном нажатии на Shift, нажималось сочетание клавиш. Win+H
Спасибо.
P.S. Я пробовал что-то подобное, но срабатывает очень быстро и опять же при зажатии кнопки он щелкает языки. Не возможно скопировать что-то и вставить.
#SingleInstance, Force
#NoEnv
LControl::
While GetKeyState("LControl", "P") && GetKeyState("LControl", "P")
{
SendInput, {Alt down}{Shift down}{Alt up}{Shift up}
Sleep, 100
}
Return
С Shift работает, но очень быстро. И при зажатии Shift также срабатывает комбинация. Это не позволяет поставить, например, запятую или написать с большой буквы.
#Persistent
SetTimer, CheckShiftPress, 100
Return
CheckShiftPress:
If GetKeyState("LShift", "P") { ; Проверяем, нажата ли левая Shift
If !shiftPressed { ; Если это первое нажатие
shiftPressed := true ; Устанавливаем флаг, что Shift был нажат
SetTimer, ResetShiftPressed, -500 ; Устанавливаем таймер для сброса флага через 500 миллисекунд
} else { ; Если это второе нажатие
Send, #h ; Отправляем комбинацию клавиш Win+H для переключения языка
shiftPressed := false ; Сбрасываем флаг, чтобы предотвратить повторное нажатие
}
}
Return
ResetShiftPressed:
shiftPressed := false ; Сбрасываем флаг, если прошло более 500 миллисекунд с момента первого нажатия
Return