Как я могу имитировать двухэтапное поведение макросов Visual Studio "Ctrl-K, C" с помощью Autoit/Autohotkey?

Я пытаюсь настроить AutoHotkey макросы для некоторых общих задач, и я хочу, чтобы горячие клавиши имитировали Visual Studio "два -step shortcut", то есть нажатие Ctrl - K позволит включить режим макроса; в макро режиме, нажатие некоторых клавиш запускает макрос, а затем отключает "режим макросъемки", а любой другой ключ просто отключает режим макроса.

Пример - при вводе имени файла я хочу иметь возможность вставить сегодняшнюю дату, нажав Ctrl - K, затем нажав D.

Есть ли у кого-нибудь хороший пример автономного AutoHotkey script, который ведет себя следующим образом?

Ответы

Ответ 1

Этот Autohotkey script, когда вы нажимаете ctrl + k, будет ждать, пока вы нажмете клавишу, и если вы нажмете d, он будет вводить текущую дату.

^k::
Input Key, L1
FormatTime, Time, , yyyy-MM-dd
if Key = d
    Send %Time%
return

Ответ 2

Небольшое отклонение от принятого ответа - вот что я использовал. Я захватываю Ctrl + LWin (левый ключ Windows), поэтому он не конфликтует с VS встроенными комбинациями клавиш Ctrl-K.

; Capture Ctrl+Left Windows Key
^LWin::

; Show traytip including shortcut keys
TrayTip, Ctrl-Win pressed - waiting for second key..., t: current time`nd: current date, 1, 1

; Capture next string input (i.e. next key)
Input, Key, L1

; Call TrayTip with no arguments to remove currently-visible traytip
TrayTip

if Key = d
{
    FormatTime, Date, , yyyyMMdd
    SendInput %Date%
} 
else if Key = t 
{
    FormatTime, Time, , hhmmss
    SendInput %Time%
}   
return