¿Duplicador de entrada básico de AutoHotKey?

¿Duplicador de entrada básico de AutoHotKey?

Tengo una idea bastante simple con la que creo que AutoHotKey podría ayudarme. Básicamente, cuando uso ctrl-v para pegar, quiero que transmita un segundo ctrl-v para poder pegar dos veces. Tengo varias combinaciones de teclas en mi entorno de desarrollo configuradas para presionar dos veces varias teclas Ctrl, por lo que también me gustaría poder extender el script a otras teclas además de Ctrl-v. Sin embargo, este es mi primer script de AutoHotKey y me está costando mucho despegar ya que hay mucho que digerir. ¡Gracias!

Respuesta1

En AutoHotkey, enviar dos veces una clave es bastante sencillo.

#IfWinActive
~^v::SendInput, ^v

Algunos elementos adicionales:

1) Puede personalizar qué programas recibirán un doble envío o no usando #IfWinActivey designando un nombre de ventana, nombre de archivo ejecutable, clase, etc. para WinTitle

2) La tilde en la definición de la tecla de acceso rápido significa que el script no detiene la pulsación de tecla original. Si desea tener control total sobre si el original se transmite o no, puede eliminar la tilde (lo que bloqueará la pulsación de tecla original) y luego enviarlo usted mismo dos veces (o no enviarlo en absoluto, o lo que quiera hacer sin la pulsación de tecla original). registrarse).

3) Puede agregar un retraso si es necesario extendiendo la función a más que una simple definición de tecla de acceso rápido de una sola línea y usando una Returndeclaración

4) Puedes usar el mismo código para múltiples teclas de acceso rápido usando A_ThisHotkey.

5) También puede permitir pulsaciones de teclas con múltiples modificadores usando un modificador * si es necesario. Es posible que esto no funcione exactamente bien con el código de ejemplo siguiente, pero es algo a tener en cuenta.

Ejemplo de los elementos 1-4 anteriores:

; 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

información relacionada