Logo Desarrollo


Primeros pasos:

Lo primero que haremos es crear un documento .ahk. Para ello nos situamos en alguna carpeta con el explorador de archivos. Sin tener nada seleccionado, abrimos el menú contextual con la tecla aplicaciones y buscamos el submenú nuevo, y dentro de este la opción AutoHotkey script. Le colocamos un nombre y pulsamos intro. Ahora si abrimos el menú contextual sobre este archivo recién creado, tendremos las opciones añadidas por el instalador de AHK:

Vamos a escribir un poco de código, por lo que vamos a seleccionar la opción Edit Script.
Lo primero con lo que nos vamos a encontrar al editar el documento, es una serie de instrucciones predefinidas que por ahora vamos a seleccionar y eliminar.
Al ejecutar un script el intérprete va a ir leyendo secuencialmente las instrucciones escritas en el documento. Podemos ir ejecutando fragmentos de código escritos en diferentes partes del archivo a través de subrutinas, funciones y demás. Pero la lectura se realiza de forma descendente.
El intérprete solo detiene su ejecución cuando se topa con la instrucción return, con un atajo de teclado o con el fin del documento. Toda esta primer parte del mismo, hasta donde se detiene por los elementos antes mencionados, pertenece al fragmento de ejecución automática que se activa al ejecutar el script.


Escribiendo código:

Como ya hemos dicho, la programación se basa en instrucciones. Estas no se escriben de cualquier forma, sino que tienen su sintaxis específica que es la que comprende el intérprete, por ejemplo. Si quisiéramos que nuestro script emita un sonido beep al ejecutarse, por más que escribamos haz sonar un pitido. Por favor hazme un beep, o jodér! suena de una vez! El interprete no hará ningún caso, y nos va a avisar que no reconoce ninguna instrucción en esas frases.
El comando para que se realice esa acción se denomina soundBeep. Este recibe 2 parámetros; la frecuencia del sonido, y la duración en milisegundos. En el caso de los comandos los argumentos van separados por comas, por lo que un ejemplo podría ser:

soundBeep, 440, 150

Si guardamos los cambios y pulsamos intro sobre el script con esa instrucción, escucharemos un pitido en la frecuencia 440, con una duración de 150 milisegundos.
Una vez ejejecutada la instrucción el script se cierra automáticamente, ya que luego de leer la línea del soundBeep se topa con el final del documento.
Nota importante:
AutoHotkey es indiferente a las mayúsculas (case insensitive) por lo que podremos escribir a nuestro antojo, sin embargo es una buena práctica utilizar los estilos Pascal case o Camel case, que permite a su vez una mejor lectura del código por los lectores de pantalla.
Con Pascal case se escriben con mayúsculas las primeras letras de los nombres compuestos por una o más palabras en funciones, variables, clases, etc Por ejemplo;

Este es el estilo más utilizado por los desarrolladores de scripts AHK. En el estilo camel case las mayúsculas se aplican a partir de la segunda palabra, por ejemplo;

También existen otros tipos como snake_case, el cual separa las palabras con un guión bajo, así como el kebab-case, el cual utiliza un guión medio para la separación.
Los espacios generalmente son ignorados, aunque en algunos casos si es necesario especificarlos. También podremos dejar líneas en blanco entre las instrucciones ya que estas sí son ignoradas por el intérprete.
Otro comando similar es soundPlay. Con el podremos ejecutar un archivo de audio. Para ello tendremos que pasarle el parámetro con la ruta del archivo a reproducir, por ejemplo:

soundPlay, C:\Windows\Media\Ring10.wav

Sin embargo a este código tendremos que agregarle algo para que funcione, ya que si lo ejecutamos podremos notar que no sucede nada.
El problema es que no le estamos dando tiempo al archivo para que suene el audio. ya que el intérprete lee la instrucción, e inmediatamente pasa a la siguiente. En este caso como no hay nada más, se cierra. Para ello vamos a utilizar un comando llamado sleep, el cual realiza una pausa en la lectura del código, y solo continúa al cumplirse con el tiempo especificado en el parámetro del mismo.

soundPlay, C:\Windows\Media\Ring10.wav
sleep, 8000

Ahora si. Al ejecutar el script se lee la primer instrucción, se espera 8 segundos y se cierra.

Rutas

Cuando trabajemos con archivos en AHK podremos utilizar 2 tipos de rutas, relativas y absolutas:
Las relativas refieren a la ruta del script como raíz. por ejemplo;

soundPlay, archivo.mp3

En el código anterior el intérprete buscará el archivo en la misma ruta donde se encuentra el script.

soundPlay, carpeta\archivo.mp3

En este código se buscará el archivo dentro del directorio llamado carpeta que debería encontrarse en el mismo lugar que el script.
Y el otro tipo son las rutas absolutas, como por ejemplo la que hemos utilizado en el primer ejemplo de la instrucción soundPlay. Es decir la ruta completa desde la unidad donde se encuentre el archivo a buscar.
Nota :
En los comandos que solo reciban un argumento, como el caso de sleep o soundPlay que son las que hemos visto hasta ahora, no es necesario separar ambas cosas con una coma. El siguiente código también es válido:

soundPlay C:\Windows\Media\Ring10.wav 
sleep 8000