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 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 Return
instruçã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