
En artículos anteriores, hemos visto ya unas cuantas aplicaciones de AutoHotkey, y si te han gustado, las que verás aquí te va a encantar: se trata de aprovechar el contenido del Portapapeles con macros sencillas de AutoHotkey.
Hablando de AutoHotkey, los beneficios son siempre:
- velocidad al trabajar;
- seguridad de que lo que haces está bien tecleado (suponiendo, claro, que lo has tecleado bien la primera vez);
- flexibilidad, es decir, puedes ejecutar la macro en cualquier aplicación, si así lo quieres.
Tres razones de peso, tres motivos para empezar cuanto antes.
Aplicaciones que vamos a ver:
- Contestar correos con plantillas.
- Consultar Google, Wikipedia, etc.
- Crear carpetas en Explorador de Windows.
- Aplicar códigos especiales.
1.ª aplicación: contestar correos
Ya lo vimos en este artículo antiguo (Introducción a AutoHotkey) de hace un año: AutoHotkey es muy útil para enviar rápidamente respuestas enlatadas en tus correos electrónicos. Por ejemplo, si eres traductor, seguramente encontrarás muy útil tener una plantilla para:
- enviar el presupuesto al cliente;
- enviar un documento traducido al cliente;
- enviar una factura al cliente;
- enviar un acuse de recibo (de lo que sea…).
Puede haber más respuestas enlatadas, pero ya tienes un punto para empezar.
Este truco te vale para cualquier cliente de correo (Outlook, Gmail, Live, etc.), ¿vale?
Imagínate que tu cliente se llama Carlos, y que le quieres enviar el presupuesto que te ha pedido.
Tienes su mensaje abierto en Outlook, por ejemplo, y pulsas el botón Responder.

¿Listo para escribir?

Ya vimos en este artículo una primera forma de rellenar estas respuestas enlatadas:
; ENVÍO DE PRESUPUESTO (1)
; Colocar el cursor en la primera línea del mensaje
; https://www.gonduana.com/autohotkey-y-el-portapapeles-de-windows
; ¡¡No olvidar sustituir XXXX en el mensaje después de ejecutar macro!!
:*:hxpto::Hola, XXXX:{Enter}{Enter}Adjunto el presupuesto de la traducción.{Enter}{Enter}Envíame el pedido para poder lanzar la traducción.{Enter}{Enter}Gracias.{Enter}{Enter}… Jesús Prieto …
Simplemente, escribe la abreviatura hxpto al principio del mensaje y AutoHotkey la expandirá al texto que ves en la variable cadenaFinal de la macro, excepto que cada {Enter} es en realidad un retorno de carro. El parámetro asterisco (*) dispara la macro incluso si escribes hxpto sin un espacio (u otro carácter de terminación).
Ves que, antes de enviar el mensaje, habría que sustituir el hueco XXXX de forma manual por el nombre del cliente, Carlos, en este caso:

Nota: es importante que las abreviaturas te sugieran algo para poder memorizarlas fácilmente. Por ejemplo, hxpto me sugiere bastante, porque la h es la inicial de hola, la x es que vale para alguien, y pto es la abreviatura personal de presupuesto. Si hxpto no te sugiere nada, la cambias a tu gusto, ¿vale?
Estaría terminado, pero hay un par de peros…
El primero es que existe el riesgo de que olvides cambiar las equis (¡bochornoso cuando te lo comente tu cliente!).
🙁
El segundo es que hay una manera más fácil para ti, que se basa, como ya lo estás imaginando, en emplear las posibilidades de AutoHotkey con el Portapapeles.
¡Pues vamos a mejorar esta macro!
* * * *
La segunda versión de la macro de AutoHotkey, que mejora la primera sería:
; ENVÍO DE PRESUPUESTO (2)
; Seleccionar y copiar el nombre del cliente
; Colocar el cursor en la primera línea del mensaje
; https://www.gonduana.com/autohotkey-y-el-portapapeles-de-windows
:*:hxpto::
cadenaFinal = Hola, %Clipboard%:{Enter}{Enter}Adjunto el presupuesto de la traducción.{Enter}{Enter}Envíame el pedido para poder lanzar la traducción.{Enter}{Enter}Gracias.{Enter}{Enter}… Jesús Prieto …
SendInput %cadenafinal%
return
Aquí se supone que antes de ejecutar la macro seleccionaste el nombre del cliente (normalmente abajo, al pie del mensaje), lo copiaste al Portapapeles y colocaste el cursor del ratón arriba, al principio del mensaje. Igual que antes, para ejecutar la macro, escribe hxpto.
Hay una variable interna de AutoHotkey que se llama Clipboard que tiene el contenido de texto del Portapapeles del sistema operativo Windows. Es la que aparece en la línea 6.
Hay otra variable interna, ClipboardAll, que tiene todo el contenido: texto con su formato, imágenes, etc. La emplearemos más adelante…
Así de fácil.
Por si acaso te lo preguntas, en la línea 6 la variable Clipboard debe ir entre signos de porcentaje. Si no los pones, AutoHotkey escribiría literalmente Clipboard, en lugar de su contenido.
* * * *
¡Pero aún podemos mejorarlo!
¿Cómo?
AutoHotkey…
- copiará el nombre del cliente automáticamente;
- borrará el espacio final que seguramente hay después del nombre de pila del cliente;
- colocará el cursor al principio del mensaje, arriba del todo;
- respetará el contenido del Portapapeles, y al final de la macro restituirá el Portapapeles con el contenido que tenía antes de ejecutar la macro.
La tercera y última versión de la macro de AutoHotkey es:
; ENVÍO DE PRESUPUESTO (3)
; Seleccionar el nombre del cliente
; https://www.gonduana.com/autohotkey-y-el-portapapeles-de-windows
#^p::
; Copiar TODO el contenido del Portapapeles
portapapeles := ClipboardAll
; Borrar los espacios iniciales y finales
quitarEspaciosIniFin := A_AutoTrim
AutoTrim, On
; Vacía el Portapapeles
clipboard =
; CONTROL+ C = copia el texto seleccionado
Send ^c
; Espera a que el Portapapeles tenga contenido
ClipWait
nombre = %Clipboard%
; se devuelve al valor que tenía antes
AutoTrim, %quitarEspaciosInicialesyFinales%
; Mueve el cursor al principio del documento
SendInput ^{Home}
; Retardo de 100 milisegundos
Sleep, 100
cadena = Hola, %nombre%:{Enter}{Enter}Adjunto el presupuesto de la traducción.{Enter}{Enter}Envíame el pedido para poder lanzar la traducción.{Enter}{Enter}Gracias.{Enter}{Enter}… Jesús Prieto …
SendInput %cadena%
; Devolver contenido original al Portapapeles
Clipboard = %portapapeles%
; Liberar memoria de la variable temporal
portapapeles =
return
La línea 6 copia el contenido del Portapapeles a una variable temporal llamada portapapeles. Al final de la macro, devolveremos al Portapapeles este valor.
La línea 9 copia el valor de una variable interna, llamada A_AutoTrim a una variable temporal llamada quitarEspaciosIniFin. Al final de la macro, devolveremos a esta variable interna el valor que tenía al ejecutar la macro.
El comando AutoTrim de la línea 10 hace que las siguientes líneas con asignación de cadenas se realicen sin los espacios iniciales y finales.
La línea 13 vacía el Portapapeles, mientras que la siguiente línea envía la combinación de teclas CTRL+c al sistema, es decir, se copia al Portapapeles el texto que esté seleccionado.
La función ClipWait espera el tiempo necesario para que el sistema detecte que efectivamente, ha cambiado el contenido del Portapapeles. Esto suele ser el procedimiento recomendado al tratar con el Portapapeles.
Ahora, en la línea 18 asignamos el contenido de texto del Portapapeles a una variable llamada nombre. Gracias a la línea 10 anterior, si hay espacios al inicio al final del texto copiado, entonces se borrarán dichos espacios.
Ahora ya podemos devolver el valor de recorte de espacios (línea 21).
Ahora llevamos el cursor del ratón a la primera línea del mensaje, para eso enviamos la combinación de teclas CTRL+INICIO (línea 24).
La línea 28 es una concatenación de textos y variables. Por supuesto, puedes y debes cambiarla a lo que más te apetezca.
La línea 30 emplea la función SendInput para escribir el texto de la variable cadena en el mensaje. ¡Lo que queríamos!
Vamos terminando: la línea 33 devuelve al Portapapeles el contenido original antes de ejecutar esta macro. ¡Así, no lo pierdes!
La última línea, 35, simplemente asigna un valor cero a nuestra variable temporal portapapeles, para liberar la memoria RAM empleada, importante si el contenido ocupaba mucha memoria (por ejemplo, si había muchas imágenes grandes).
Por supuesto:
¡No está terminado esto,
si no adjuntas el presupuesto,
o tu cliente te lo pedirá presto!
Lo digo porque me sucede demasiado a menudo…
🙂
Bien… Hemos creado una plantilla de correo, la del presupuesto; ahora te toca a ti ver qué plantillas de correo puedes crear en AutoHotkey.
Por supuesto, puedes personalizar el texto de la plantilla de presupuesto, cambiar la abreviatura, lo que quieras…
2.ª aplicación: Búsquedas en Google, Wikipedia, etc.
Otra aplicación interesante que uso mucho es hacer búsquedas por internet.
En concreto, busco palabras en el Diccionario de la lengua española.
Para ello, puedes copiar esta versión corta de la macro de AutoHotkey, que se ejecuta al pulsar WIN+r:
; Consulta el texto seleccionado en el DLE:
; Diccionario de la lengua española
; https://www.gonduana.com/autohotkey-y-el-portapapeles-de-windows
#r::
clipboard =
Send ^c
ClipWait
StringLen, longitud, Clipboard
if longitud > 23
{
MsgBox, La palabra debe tener menos de 24 caracteres, por favor.
Return
}
Run
Return
Por mor de la simplicidad, he eliminado parte del código AutoHotkey que vimos en la anterior macro, en concreto, las líneas para restituir el contenido del Portapapeles; si quieres, ya sabes que se lo puedes añadir, y conviene que lo pongas.
Igual que en la anterior macro, primero vaciamos el Portapapeles y lanzamos la combinación de teclas CTRL+c para copiar el texto seleccionado.
Como novedad, comprobamos que la longitud de caracteres del Portapapeles sea inferior a 23, justo la longitud de la palabra más larga en español, que es electroencefalografista. Si tiene más de 23 caracteres, seguramente significa que has seleccionado demasiado texto, y te has equivocado… Si quieres, puedes aumentar este valor o borrar esta sección (línea 10).
Si todo está correcto, se ejecuta la línea 15 para abrir la web de la RAE con el parámetro del valor del Portapapeles. Entonces, se abre tu navegador web predeterminado con el término ya en la pantalla.
* * * *
Lo mismo puedes hacer para consultar en Google.
La macro, que se ejecuta al pulsar WIN+g, sería así:
; Consulta el texto seleccionado en Google
; https://www.gonduana.com/autohotkey-y-el-portapapeles-de-windows
#g::
clipboard =
Send ^c
ClipWait
StringLen, longitud, Clipboard
longitudMax := 50
if longitud > %longitudMax%
{
MsgBox, Menos de %longitudMax% caracteres, por favor
Return
}
Run http://www.google.com/search?q=%Clipboard%
Return
Si entendiste la macro del Diccionario de la lengua española, esta macro es exactamente igual, excepto que el límite de caracteres es 50 (mediante una variable llamada longitudMax) y que, por supuesto, se abre la web de Google el texto seleccionado ya buscado.
* * * *
También puedes consultar la enciclopedia Wikipedia.
Seguro que sabes cómo se hace, pero te pongo aquí el código que se ejecuta al pulsar WIN+w:
; Consulta el texto seleccionado en Wikipedia inglesa
#w::
clipboard =
Send ^c
ClipWait
StringLen, longitud, Clipboard
longitudMax := 30
if longitud > %longitudMax%
{
MsgBox, Menos de %longitudMax% caracteres, por favor.
Return
}
Run http://en.wikipedia.org/wiki/Special:Search?search=%Clipboard%
Return
Sin comentarios…
Lo dejamos aquí, pero… te das cuenta, ¿verdad? ¡Puedes tener una serie de consultas rápidas!
Si eres como el resto de traductores que conozco, te habrá encantado esta aplicación.
¿Cuántas veces abres tu buscador, Google, Bing, el que sea?
Apostaría que más de un centenar de veces ¡cada día!
Con esta macro te ahorras muchas pulsaciones de teclas, cambiar de programa; todo es tiempo y energía.
De hecho, hay un software llamado intelliWebsearch, quizás lo conozcas, que en realidad es una macro de AutoHotkey compilada en un ejecutable de extensión EXE.
Notas:
- Que conste que no tengo nada que ver con intelliWebsearch.
- No dispongo de ese software, así que no puedo opinar por mí mismo, excepto repetir lo que dicen otros traductores: que es una herramienta fenomenal.
- Corolario: tú puedes crearte tu propia macro fenomenal, al estilo de intelliWebsearch.
3.ª aplicación: crear carpetas en el Explorador de Windows
Cambiamos de tercio.
Como jefe de proyectos, me paso todo el día creando carpetas en el Explorador de Windows. Es el placer de tenerlo todo ordenado, pero, sinceramente, puedes llegar a odiar esta tarea…
Si te sucede lo mismo, te doy una ayuda: ¡AutoHotkey!
Imagínate que necesitas crear a menudo ciertas carpetas.
Por ejemplo, en cada pedido que recibes necesitas crear las siguientes carpetas: pedido, original, presupuesto, traducido, maquetado y entregado.
Crearlas una a una, manualmente, puede ser una verdadera lata, lo hagas como lo hagas… a menos que cuentes con la ayuda de AutoHotkey y sus funciones de control del Portapapeles de Windows.
Tómatelo como ejemplo, pero la siguiente macro, que se ejecuta con WIN+CTRL+x, te puede ser muy útil:
; Crea varias carpetas en Explorador de Windows ; Antes de ejecutar la macro, abre el Explorador de Windows ; y selecciona el texto de la barra de herramientas ; https://www.gonduana.com/autohotkey-y-el-portapapeles-de-windows #^x:: clipboard = SendInput ^c ClipWait carpetaRaiz := Clipboard carpeta = %carpetaRaiz%\pedido Run, cmd /c md "%carpeta%",, Hide carpeta = %carpetaRaiz%\original Run, cmd /c md "%carpeta%",, Hide carpeta = %carpetaRaiz%\presupuesto Run, cmd /c md "%carpeta%",, Hide carpeta = %carpetaRaiz%\traducido Run, cmd /c md "%carpeta%",, Hide carpeta = %carpetaRaiz%\maquetado Run, cmd /c md "%carpeta%",, Hide carpeta = %carpetaRaiz%\entregado Run, cmd /c md "%carpeta%",, Hide return
En la línea 10, se asigna el contenido de texto del Portapapeles a la variable carpetaRaiz.
La línea 13 crea la primera carpeta. Si no quieres saber los detalles, te puedes saltar este párrafo completo, porque lo que sigue es algo técnico… En fin, avisado estás: para crear la primera carpeta se usa la función Run para ejecutar una ventana de DOS con cmd (su parámetro /c hace que se cierre la ventana al terminar la ejecución del comando que sigue). En la ventana de DOS se ejecuta el comando md (o mkdir, es lo mismo) con el parámetro %carpeta% para crear la primera carpeta. El parámetro final Hide de la función Run hace que la ventana de DOS esté oculta mientras se ejecuta el comando md.
Para ejecutar la macro:
- abre primero una venta del Explorador de Windows;
- selecciona el texto de la barra de direcciones;

- ejecuta la macro con WIN+CTRL+x, y AutoHotkey se encarga del resto:

Chulo, ¿eh?
No quiero complicar mucho la macro aquí, pero deberías incluir un cuadro de diálogo de confirmación, por si te confundiste al lanzarla o si la ruta no es la correcta. Te lo dejo como deberes para ti.
🙂
4.ª aplicación: escribir código
Vamos a la última aplicación de AutoHotkey y el Portapapeles.
Es posible que no saques partido a esta última aplicación, pero ahí va, por si te da alguna idea...
Va dirigida a programadores, que trabajan con WordPress o HTML, por ejemplo. La creé para aplicar estilos a todos los artículos de regex que veas en este blog.
Imagínate que quieres aplicar un determinado estilo a tu texto, y que lo haces mediante los estilos CSS.
Por ejemplo, si tienes la palabra Diccionario y quieres aplicarla un estilo llamado azul_prusia, podrías seleccionar esa palabra y ejecutar la siguiente macro con WIN+x:
; Aplica la clase «azul_prusia» como código CSS a un texto ; https://www.gonduana.com/autohotkey-y-el-portapapeles-de-windows #z:: clipboard = ; CTRL+X = Cortar SendInput ^x ClipWait ; Send Raw envía «tal cual» el texto: SendRaw <tt class="azul_prusia">%clipboard%</tt> return
En la línea 6 se corta el texto seleccionado (CTRL+x copia al Portapapeles y borra la selección), y después se emplea la función SendRaw para enviar exactamente el texto que aparece a continuación, excepto la variable clipboard. Si aquí emplearas las funciones Send o SendInput, puedes tener problemas con algunas combinaciones de caracteres; por ejemplo ^a lo convertiría a una a con sombrero (â), algo completamente distinto. Advertido estás...
Por ejemplo, si tienes este texto:
El diccionario ideal para traductores.
Selecciona la palabra diccionario, pulsa WIN+x y te saldrá esto automáticamente:
El <tt class="azul_prusia">diccionario</tt> ideal para traductores.
Lo cual puede facilitarte mucho la vida al aplicar estilos...
Conclusiones de AutoHotkey y el Portapapeles
Como ves, el control del contenido de texto del Portapapeles de Windows es bastante fácil con AutoHotkey.
Los ejemplos que te he dado son reales, los uso en mi día a día (como las plantillas de correo electrónico) o los he usado algún día muy a menudo (como el aplicar estilos a artículos de este blog), así que te recomiendo que a partir de los ejemplos dados en este artículo, pienses qué otras aplicaciones pueden ser interesantes para ti…
* * * *
Si te interesa este tema, te doy un par de recomendaciones más:
- Lee los otros artículos de AutoHotkey de este mismo blog. Los tienes todos si filtras por «AutoHotkey» en la nube de etiquetas (columna derecha del blog).
- Suscríbete al blog, o sígueme en LinkedIn o Twitter (@jssprt). De esta manera, serás el primero en enterarte de la publicación de los artículos.
Agradezco a http://iconleak.com la imagen del portapapeles de la primera imagen de este artículo.






muy bien explicado, muchas gracias por todo el tiempo invertido.
Gracias a ti, Fernando, y me alegro de que te haya gustado y te sea útil.
Saludos.
... Jesús Prieto ...