¿Qué es Autohotkey?![](http://arcadespain.info/images/empardopo/Utiles/Autohotkey/tuto/Autohotkey-logo.png)
En algunos sitios he leído que:
Autohotkey es una herramienta para los amantes de los atajos de teclado.
Según la Wikipedia AutoHotkey es una utilidad para la creación de macros y automatización libre y de código abierto.
Según yo podríamos decir que en estos momentos es un lenguaje de programación script con todas las de la ley con el que no sólo puedes automatizar tareas, crear atajos de teclado sino también realizar casi cualquier tarea o programa que se te ocurra.
Como cualquier lenguaje tiene sus características, defectos y virtudes pero se pueden hacer cositas muy interesantes y de forma rápida…
Las ventajas que le veo son:
+ open source y en constante evolución
+ una comunidad muy muy activa que te ayuda de forma rápida con cualquier problema si es que no está resulto ya.
+ Se empieza a hacer cosas importantes rápidamente (si ya sabías programar) y otras más pequeñitas casi sin saber nada de programación.
+ Cualquier script que hagas se puede convertir en un fichero ejecutable.
+ Muy muy útil para acelerar y automatizar tareas.
Inconvenientes
+ Es sólo para Windows.
+ La forma de programar o sintaxis es algo “extraña”. Es sólo mi impresión.
Aquí tenéis los links de las dos webs/comunidades más importantes
www.autohotkey.com http://ahkscript.org/Ambas tienen un foro para consultas así como todo tipo de información y ayuda al lenguaje. (lamentablemente en inglés aunque podría ser una excusa para aprender)
Recomiendo la segunda web, de hecho el link de la versión más reciente v1.1.19.01 sólo está en esta segunda.
Lo que haremos primero es instalar el programa así que nos vamos al apartado Download por ejemplo de la web de ahkscript.org y descargamos el programa (
http://ahkscript.org/download/ahk-install.exe )
Luego como estamos en Windows ya sabéis el proceso normal de instalación de Siguiente, Siguiente, Siguiente hasta que ya no ponga ninguno más. Por favor, una recomendación muy simple e importante, leer lo que ponen las ventanas antes de dar a Siguiente (uff, que daño ha hecho este Bill al mundo ,jeje)
Bueno ya lo tenemos instalado y ahora qué? :-)
Una vez instalado podremos verlo en todos nuestros programas
![](http://arcadespain.info/images/empardopo/Utiles/Autohotkey/tuto/AutoHotkey00.png)
Si ejecutamos AutoHotkey nos aparecería algo así
![](http://arcadespain.info/images/empardopo/Utiles/Autohotkey/tuto/AutoHotkey01.png)
Al contestar que sí nos creará un script de prueba que contendría algo así
; IMPORTANT INFO ABOUT GETTING STARTED: Lines that start with a
; semicolon, such as this one, are comments. They are not executed.
; This script has a special filename and path because it is automatically
; launched when you run the program directly. Also, any text file whose
; name ends in .ahk is associated with the program, which means that it
; can be launched simply by double-clicking it. You can have as many .ahk
; files as you want, located in any folder. You can also run more than
; one .ahk file simultaneously and each will get its own tray icon.
; SAMPLE HOTKEYS: Below are two sample hotkeys. The first is Win+Z and it
; launches a web site in the default browser. The second is Control+Alt+N
; and it launches a new Notepad window (or activates an existing one). To
; try out these hotkeys, run AutoHotkey again, which will load this file.
#z::Run [url=http://www.autohotkey.com]www.autohotkey.com[/url]
^!n::
IfWinExist Untitled - Notepad
WinActivate
else
Run Notepad
return
; Note: From now on whenever you run AutoHotkey directly, this script
; will be loaded. So feel free to customize it to suit your needs.
; Please read the QUICK-START TUTORIAL near the top of the help file.
; It explains how to perform common automation tasks such as sending
; keystrokes and mouse clicks. It also explains more about hotkeys.
De forma que a partir de ahora cada vez que ejecutásemos el ejecutable de Autohotkey.exe éste sería el script que se ejecutaría por defecto.
De hecho si volvemos a ejecutar Autohotkey.exe nos aparecerá una H en verde en el system tray, algo así
![](http://arcadespain.info/images/empardopo/Utiles/Autohotkey/tuto/AutoHotkey02.png)
donde si hacemos click con el botón derecho del ratón podremos ver las opciones que se pueden ver en la foto anterior y entre ellas Edit This Script para poder editarlo.
Igualmente, clicando con el botón derecho del ratón en cualquier parte libre de nuestro Escritorio de Windows podremos generar de forma rápida. Nos aparecerá lo siguiente
![](http://arcadespain.info/images/empardopo/Utiles/Autohotkey/tuto/AutoHotkey03.png)
donde el fichero a crear será del tipo AutoHotkey Script
Este tipo de fichero es sólo un fichero de texto pero con la extensión ahk. Esto significa dos cosas:
La primera es que podremos editarlo con cualquier editor de texto (no vale Word).
La segunda es que las extensiones ahk se han asignado a AutoHotkey de forma que al hacer doble click sobre ellas se ejecutarán nuestros scripts.
Llegados a este punto ya podemos escribir nuestros scripts. Si no eres programador estarás perdido pero te daría casi igual editar tus scripts con el notepad, notepad++, sublime, etc. Pero si eres programador querrás alguna especie de IDE que te haga la vida un poco más fácil.
En mi caso os recomiendo el programa SciTE4AutoHotkey el cual podéis encontrar en su web
http://fincs.ahk4.net/scite4ahk/En su web podéis ver información al respecto.
Hay otros como AHK Studio e incluso otras alternativas como ejecutar y compilar desde Sublime o Notepad++ pero me he acostumbrado a este y la verdad es que me resulta muy útil aunque seguro que no lo conozco ni sé usar ni al 30% de sus posibilidades.
Una vez instalado, si hacemos click con el botón derecho del ratón sobre un Script ahk (*.ahk) entre otras opciones nos aparecerá la de Edit Script de forma que si la seleccionamos se nos abrirá el programa SciTE4AutoHotkey pudiendo editar el script, ejecutarlo, compilarlo, etc.
Otra opción muy interesante que tiene es la de poder hacer debug (ya sabréis/averiguaréis que es eso si es que no lo sabéis …)
Vamos a editar el script inicial de ejemplo que el propio Autohotkey nos generaba.
![](http://arcadespain.info/images/empardopo/Utiles/Autohotkey/tuto/AutoHotkey00.png)
Vamos a explicar brevemente lo que haría este script si lo ejecutamos. De hecho lo vamos a ejecutar bien haciendo doble click sobre fichero Autohotkey.ahk o si lo tenemos abierto ya con nuestro nuevo IDE pulsaremos sobre el botoncito arriba con forma de triangulo azul o botón de PLAY.
El script simplemente lo que hace es crear un par de hotkeys o atajos de teclado.(está explicado en el propio script pero en inglés)
Si pulsamos las teclas Win+Z se abrirá nuestro navegador determinado llevándonos a la web de
www.autohotkey.comSi pulsamos las teclas Control+Alt+N nos abrirá una nueva ventana de Notepad o si teníamos una abierta nos la activará dándole el foco siempre y cuando en el título de la ventana tenga Untitled – Notepad (cosa poco probable si tenemos nuestro Windows en español, así que probad a ver si os sale en caso de tenerlo en español).
Este script es algo muy simple pero lo mismo se os están ocurriendo ya cositas para hacer …
Por ejemplo, ¿qué programas sueles usar más? Lo mismo podrías crearte un script tonto en el que por ejemplo, si pulsamos:
Control+Alt+1 abre el Excel.
Control+Alt+2 abre el Word.
Control+Alt+3 abre el Google Chrome.
Control+Alt+h nos recuerda las teclas.
Venga ya tienes curro y si no sabes como hacerlo pues luego preguntas en el foro cómo hacerlo y os ayudaré.
Si te ha gustado lo que hace el script lo mismo se lo quieres pasar a un amigo pero resulta que tu amigo no quiere tener que instalar Autohotkey para poder ejecutarlo. No hay problemas, desde
SciTE4AutoHotkey podemos compilar el fichero pulsando Control+F7 o bien desde el menú Tools
![](http://arcadespain.info/images/empardopo/Utiles/Autohotkey/tuto/AutoHotkey05.png)
En la parte de abajo podemos ver lo siguiente
![](http://arcadespain.info/images/empardopo/Utiles/Autohotkey/tuto/AutoHotkey06.png)
Donde como cosas interesantes cabe decir dos cosas.
La primera es que en la tura MisDocumentos nos habrá creado un fichero ejecutable que se llamará igual que nuestro script, en este caso, AutoHotkey.exe
La segunda es que en la ruta c:\Progam Files\AutoHotkey\Compiler está el programita
Ahk2Exe.exe que es el encargado de generar el fichero exe.
A partir de aquí ya podemos hacer casi cualquier cosa que se nos ocurra…
¿Os atrevéis? :-)
Y hasta aquí … No, aún nos falta nuestro primer programa. Ese que en cualquier libro de programación es el primer programa.
Por supuesto estamos hablando del archiconocido hola mundo
Vamos a usar el script anterior y bien al principio o bien al final vamos a añadir la siguiente línea
::Hello::Hello World{!} This is my first script. ;Example comment
Ahora ejecutaremos de nuevo nuestro script. Si estaba ejecutándose, nos aparecerá algo parecido a esto.
![](http://arcadespain.info/images/empardopo/Utiles/Autohotkey/tuto/AutoHotkey07.png)
Lo cual nos viene a decir que ya hay otra versión del script ejecutándose y que si queremos reemplazarla por la nueva a lo que contestaremos que Sí.
Ahora, ya tendremos el nuevo script ejecutándose y la nueva línea lo que hará es que cuando escribamos la palabra Hello y luego le demos a la tecla de espacio nos escribirá la frase de
Hello World! This is my first script.
Sencillo, rápido y útil. Si normalmente redactáis imaginad cuantas abreviaturas podéis usar para agilizar vuestro curro. Por ejemplo, se puede usar incluso para recordar palabras en inglés, btw por cierto, hence por lo tanto, etc,etc …
En la nueva línea de código hay un par de cositas que se pueden comentar.
Hemos metido el signo de admiración
! entre llaves. Esto es porque el signo de admiración es usado por AutoHotkey como una tecla de modificación (Alt para ser mas exactos).
Si no queremos tener que pulsar el espacio tras haber escrito hello podemos escribir un asterisco
* entre los dos puntos iniciales.
Así de fácil ha sido nuestro programita de Hola Mundo!!
Utilidad Windows SpyUna utilidad que no hemos comentado es que al hacer click con el botón derecho del ratón sobre el icono H que aparece en el System tray cuando ejecutamos un script aparece la opción de
Windows Spy. Al ejecutarla, aparecerá una ventanita en blanco que cuando pulsamos con el ratón en algún sitio quedaría algo parecido a la imagen que pondré a continuación.
Como podréis ver los datos van cambiando conforme vayáis moviendo el ratón y ofrece datos interesantes como el nombre de la ventana sobre la que os posicionéis o bien las coordenadas del puntero del ratón tanto de la ventana activa como del Escritorio.
![](http://arcadespain.info/images/empardopo/Utiles/Autohotkey/tuto/AutoHotkey08.png)
Ahora mismo quizás no le veáis la utilidad pero puede serviros más adelante…
Click de ratónHemos visto como definir algún hotkey pero también podemos hacer cosas con el ratón.
Por ejemplo, haciendo uso de la utilidad anterior Windows Spy vamos a ver las coordenadas de un pdf que tengamos en nuestro Escritorio. En mi caso obtengo los valores 50,500.
Nuestro script lo que tendría que hacer es que cuando pulsemos la tecla F2 abra nuestro fichero pdf.
Para hacerlo, nos creamos un nuevo fichero ahk bien desde nuestro IDE o creándolo en el Escritorio con el botón derecho del ratón y luego sobre él seleccionamos la opción de Edit Script.
Nos crearemos el siguiente Script
F2::
Click 50,500,2
Return
Siempre y cuando tengamos todas las ventanas minimizadas, cuando presionemos la tecla F2 se hará un doble click de ratón en la posición que hemos definido.
Desde el IDE podemos ponernos encima de la palabra Click y pulsando F1 accederemos a una ayuda explicándonos la sintaxis del comando.
Ejecutar programasOtra cosa que podemos hacer con Autohotkey es ejecutar programas.
Ya vimos algo en el primer ejemplo,
Run, notepad.exe, C:\My Documents, max
La línea anterior lo que hace es abrir el notepad en una ventana maximizada.
Run, http://arcadespain.info
La línea anterior lo que hace es abrir nuestro foro favorito en nuestro navegador determinado.
Run, mailto:empardopo@gmail.com?subject=Dudas AutoHotkey&body=Hola Mundo.
La línea anterior abrirá nuestro programa gestor de correo determinado y de forma automática crea un nuevo mensaje rellenando los datos del destinatario, asunto y cuerpo del mensaje.
Expresiones regularesUn ejemplo tonto que nos muestra una pequeña parte del uso de expresiones regulares con AutoHotkey podría ser el siguiente
#F2::
nick := "empardopo@gmail.com"
nick:= RegExReplace(nick, "@.*", "")
msgbox, el nick es %nick%
return
Sin tener mucha idea, creo que queda claro que el script anterior lo que hace es que cuando pulsemos la tecla Windows+F2 el programita lo que hará es mostrar en pantalla el mensaje de:
el nick es empardopo
La clave es en la función
RegExReplace que lo que hace es coger el contenido de la variable nick y sustituye todos los caracteres a partir del signo @ incluyéndolo.
Un par de ejemplos interesantes
Vamos a realizar un pequeño ejemplo en el que seleccionemos un texto y al pulsar la tegla g de forma automática habrá nuestro navegador predeterminado y realice la búsqueda en google de dicha palabra seleccionada/marcada.
g::
Send ^c
Run http://www.google.com/search?q=%Clipboard%
Return
Si vemos el código por orden.
Cuando pulsamos la tecla
gHace una pulsación de
Control+C (es decir, manda al Clipboard la palabra seleccionada)
Lanza el navegador con la búsqueda en google.
Otro ejemplo interesante y parecido al anterior sería por ejemplo seleccionar una palabra o texto en inglés y que al pulsar la tecla i me habrá el navegador predeterminado llevándome a la traducción en línea de la misma. Igualmente, vamos a añadir que pulsando la tecla
Escape se cierre nuestro script.
#I::
Send ^c
Run http://translate.google.es/#en|es|%Clipboard%
Return
Esc::
ExitApp
Creo que no es necesario comentar mucho más excepto las dos últimas líneas que lo único que hacen es que cuando pulsemos la tecla
Escape nuestro script se cierre.
A partir de aquí, mi recomendación es echarle un vistazo a la ayuda de AutoHotkey accesible desde el propio programa
SciTE4AutoHotkey desde el menú Help
![](http://arcadespain.info/images/empardopo/Utiles/Autohotkey/tuto/AutoHotkey09.png)
así como visitar los foros de AutoHotkey.
By empardopo