Тема: AHK: Одинарное и двойное и тройное нажатие на клавиатуре - не работают
Здравствуйте!
Наверняка многим надоело постоянно переключаться между русским и английским языком, чтобы набрать фигурные {} или квадратные [] скобки, знаки больше-меньше <> и другие символы.
Хочу сделать, чтобы набор цифр и специальных символов на клавиатуре работал как на мобильном телефоне.
Это нужно для того, чтобы не переключаться на английский язык для набора @, квадратных [] и фигурных {} скобок, знаков больше-меньше <> и других.
Пример на клавише 2:
Один раз нажал кнопку - это цифра 2
2 раза нажал - это @
3 раза нажал - это "
(см. клавиатуру)
Есть стандартный скрипт в документации, но он сначала определяет количество нажатий, а потом срабатывает. В результате не видно какой символ будет набран. А в мобильных телефонах, мы видим символы, которые набираем.
Подскажите, какие изменения нужно внести в скрипт, чтобы было как на мобильных телефонах?
; Example #3: Detection of single, double, and triple-presses of a hotkey. This
; allows a hotkey to perform a different operation depending on how many times
; you press it:
#c::
if winc_presses > 0 ; SetTimer already started, so we log the keypress instead.
{
winc_presses += 1
return
}
; Otherwise, this is the first press of a new series. Set count to 1 and start
; the timer:
winc_presses = 1
SetTimer, KeyWinC, 600 ; Wait for more presses within a 400 millisecond window.
return
KeyWinC:
SetTimer, KeyWinC, off
if winc_presses = 1 ; The key was pressed once.
{
SendInput 1
; Run, c:\ ; Open a folder.
}
else if winc_presses = 2 ; The key was pressed twice.
{
SendInput {Backspace}2
; Run, c:\windows ; Open a different folder.
}
else if winc_presses > 2
{
SendInput {Backspace}3
; MsgBox, Three or more clicks detected.
}
; Regardless of which action above was triggered, reset the count to
; prepare for the next series of presses:
winc_presses = 0
return
