Como posso imitar o comportamento macro "Ctrl-K, C" do Visual Studio, usando o Autoit / AutohotKey?

StackOverflow https://stackoverflow.com/questions/200587

  •  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?

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top