Duplicador de entrada AutoHotKey básico?

Duplicador de entrada AutoHotKey básico?

Tenho uma ideia bastante simples e acho que o AutoHotKey poderia me ajudar. Essencialmente, quando uso ctrl-v para colar, quero que ele transmita um segundo ctrl-v para colar duas vezes. Eu tenho vários atalhos de teclado em meu ambiente de desenvolvimento configurados para serem pressionados duas vezes por várias teclas ctrl, então também gostaria de poder estender o script para várias outras teclas além de ctrl-v. Este é meu primeiro script AutoHotKey e estou tendo dificuldades para decolar, pois há muito para digerir aqui. Obrigado!

Responder1

No AutoHotkey, o envio duplo de uma chave é bastante simples.

#IfWinActive
~^v::SendInput, ^v

Alguns itens adicionais:

1) Você pode personalizar quais programas receberão um envio duplo ou não, usando #IfWinActivee designando um nome de janela, nome de exe, classe, etc.

2) O til na definição da tecla de atalho significa que o script não impede que o pressionamento de tecla original seja executado. Se você deseja controle total sobre se o original passa ou não, você pode remover o til (que bloqueará o pressionamento de tecla original) e, em seguida, enviá-lo você mesmo duas vezes (ou não enviá-lo, ou o que você quiser fazer sem o pressionamento de tecla original cadastrar-se).

3) Você pode adicionar um atraso, se necessário, estendendo a função para mais do que apenas uma definição de tecla de atalho de linha única e usando uma Returninstrução

4) Você pode usar o mesmo código para várias teclas de atalho usando A_ThisHotkey.

5) Você também pode permitir pressionamentos de teclas com vários modificadores usando um modificador *, se necessário. Isso pode não funcionar exatamente com o código de exemplo abaixo, mas é apenas algo que você deve estar ciente.

Exemplo dos itens 1-4 acima:

; this will execute the code to send duplicate keystrokes 
; for any of the hotkeys defined, in this case, a,b,c, or Ctrl+V
#IfWinActive ahk_exe notepad.exe
~a::
~b::
~c::
~^v::
    Sleep 200   ; Possibly use or adjust for reliability if needed
    SendInput % SubStr(A_ThisHotkey, 2) ; Remove tilde and send duplicate keystrokes for whichever hotkey executed
Return

informação relacionada