AutoHotKey básico duplicador de entrada?

0

Eu tenho uma ideia bastante simples que acho que o AutoHotKey poderia me ajudar. Essencialmente, quando eu uso o ctrl-v para colar, quero que ele transmita um segundo ctrl-v para colar duas vezes. Eu tenho várias combinações de teclas no meu ambiente de desenvolvimento configuradas para serem pressionamentos duplos de várias teclas ctrl, então eu também gostaria de poder estender o script para várias outras teclas além de ctrl-v. Este é o meu primeiro script AutoHotKey e estou tendo dificuldades para decolar, pois há muito para digerir. Obrigado!

bwerks
fonte
Tocar v duas vezes mais do que você precisa para criar um script? Ou devo dizer pedido um script para ele;)
jiggunjer
Como eu disse, eu tenho várias outras teclas de atalho que são configuradas como pressionamentos de tecla dobrados também. Isso foi em parte para acelerar essas combinações de teclas, além de servir como uma maneira contextualmente relevante para começar o AHK, eu acho.
precisa saber é

Respostas:

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 #IfWinActivee designando um nome de janela, nome de exe, classe etc. para o 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 ter controle total sobre a execução ou não do original, remova o til (que bloqueará o pressionamento de tecla original) e depois envie-o duas vezes (ou nada, ou o que você quiser fazer sem o pressionamento de tecla original) ficando 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 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 tecla 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 com 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
JJohnston2
fonte
Não trabalho com ahk há algum tempo, mas isso não desencadeia um loop infinito de teclas de atalho?
precisa saber é o seguinte
Não. A AutoHotkey impede isso por padrão. Você pode usar as configurações SendLevel para recuperar as definições de teclas de atalho, se necessário.
precisa saber é o seguinte
Gosto da extensibilidade fácil que esse script expõe, em vez de ter blocos quase idênticos por chave que diferem apenas na duplicação da chave. Muito legal!
precisa saber é