Doubler de entrada básica do AutoHotKey?

0

Eu tenho uma idéia bastante simples que acho que o AutoHotKey poderia me ajudar. Essencialmente, quando eu uso ctrl-v para colar, eu quero transmitir um segundo ctrl-v para que eu cole duas vezes. Eu tenho vários keybinds no meu ambiente de desenvolvimento configurado para ser double-stroke de várias teclas pressionadas ctrl, então eu também gostaria de poder estender o script para várias outras chaves além do ctrl-v também. Este é o meu primeiro script AutoHotKey e estou tendo dificuldades em decolar, já que há muito para digerir aqui. Obrigado!

    
por bwerks 26.08.2017 / 22:10

1 resposta

1

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 #IfWinActive e designando um nome de janela, nome de exe, classe, etc. para WinTitle

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

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 declaração Return

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

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

Exemplo dos itens acima 1-4:

; 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
    
por 27.08.2017 / 07:49