Como posso imitar o comportamento macro "Ctrl-K, C" do Visual Studio, usando o Autoit / AutohotKey?
-
03-07-2019 - |
Pergunta
Estou tentando configurar AutohotKey Macros para algumas tarefas comuns, e quero que as teclas de atalho imitem o comportamento de atalho "em duas etapas" do Visual Studio - ou seja, pressionando Ctrl-K ativará o "modo macro"; No modo macro, pressionar certas teclas executará uma macro e desativará o 'modo macro', e qualquer outra tecla desativará o modo macro.
Exemplo - Ao digitar um nome de arquivo, quero poder inserir a data de hoje tocando Ctrl-K, depois pressionando D.
Alguém tem um bom exemplo de um script de marquinho automático com estado que se comporta assim?
Solução
Este script AutoHotKey, quando você pressiona Ctrl+k, vai esperar que você pressione uma tecla e se você pressionar d, ele inserirá a data atual.
^k::
Input Key, L1
FormatTime, Time, , yyyy-MM-dd
if Key = d
Send %Time%
return
Outras dicas
Uma ligeira variação da resposta aceita - foi isso que acabei usando. Estou capturando o Ctrl+Lwin (tecla do Windows à esquerda) para que ele não entre em conflito com os atalhos Ctrl-K embutidos.
; 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