Cómo escribir un script de AutoHotkey

AutoHotkey es un software fantástico pero complicado. Inicialmente estaba destinado a volver a vincular teclas de acceso rápido personalizadas a diferentes acciones, pero ahora es una suite de automatización de Windows completa.

AHK no es particularmente difícil de aprender para los nuevos usuarios, ya que el concepto general es bastante simple, pero es un lenguaje de programación completo y completo de Turing. Aprenderá la sintaxis mucho más fácilmente si tiene experiencia en programación o está familiarizado con los conceptos.

Instalación y uso de AutoHotkey

El proceso de instalación de AutoHotkey es sencillo. Descargar el instalador desde el sitio web oficial y ejecútelo. Elija «Instalación rápida». Una vez que haya instalado el software, puede hacer clic con el botón derecho en cualquier lugar y seleccionar Nuevo> AutoHotkey Script para crear un nuevo script.

nuevo script autohotkey

Los scripts AHK son archivos de texto con extensión .ahk. Si hace clic con el botón derecho en ellos, obtendrá algunas opciones:

«Ejecutar script» cargará su script con el tiempo de ejecución AHK.
«Compile Script» lo incluirá con un ejecutable AHK para crear un archivo EXE que pueda ejecutar.
«Editar secuencia de comandos» abrirá su secuencia de comandos en su editor de texto predeterminado. Puede usar el Bloc de notas para escribir scripts AHK, pero recomendamos usar SciTE4AutoHotkey, un editor para AHK que admite el resaltado de sintaxis y la depuración.

compilar el script autohotkey

Mientras se ejecuta un script, ya sea un EXE o no, lo encontrará ejecutándose en segundo plano en el área de notificación de Windows, también conocida como la bandeja del sistema. Busque el icono verde con una «H» en él.

Para salir, pausar, recargar o editar una secuencia de comandos, haga clic con el botón derecho en el icono de notificación y seleccione una opción adecuada. Los scripts continuarán ejecutándose en segundo plano hasta que los salga. También desaparecerán cuando cierre sesión en Windows o reinicie su PC, por supuesto.

ejecución de secuencia de comandos autohotkey

¿Cómo funciona AutoHotkey?

En esencia, AHK hace una cosa: vincular acciones a teclas de acceso rápido. Hay muchas acciones, combinaciones de teclas de acceso rápido y estructuras de control diferentes, pero todos los scripts funcionarán con el mismo principio. Aquí hay un script AHK básico que inicia Google Chrome cada vez que presiona Windows + C:

#c::
Run Chrome
return

La primera línea define una tecla de acceso rápido. El signo de almohadilla (#) es la abreviatura de la tecla de Windows y c es la tecla C del teclado. Después de eso, hay dos puntos dobles (: 🙂 para indicar el inicio de un bloque de acción.

La siguiente línea es una acción. En este caso, la acción lanza una aplicación con el comando Ejecutar. El bloque se termina con una devolución al final. Puede tener cualquier número de acciones antes de la devolución. Todos dispararán secuencialmente.

Así, ha definido un mapeo simple de clave para la acción. Puede colocar tantos de estos como desee en un archivo .ahk y configurarlo para que se ejecute en segundo plano, siempre buscando teclas de acceso rápido para reasignar.

Teclas de acceso rápido y modificadores

Puede encontrar una lista completa de modificadores de AHK en documentación oficial, pero nos centraremos en las funciones más útiles (y geniales).

Todas las teclas modificadoras tienen abreviaturas de un solo carácter. Por ejemplo, # ! ^ + son Windows, Alt, Control y Shift, respectivamente. También puede diferenciar entre Alt, Control y Shift izquierdo y derecho con los modificadores, lo que abre mucho espacio para teclas de acceso rápido adicionales. Por ejemplo, + es Mayús a la derecha. Eche un vistazo a lista de claves para todo lo que pueda hacer referencia. (Spoiler: puede hacer referencia a casi todas las teclas. Incluso puede hacer referencia a otros dispositivos de entrada que no sean de teclado con un pequeña extensión).

Puede combinar tantas teclas como desee en una tecla de acceso rápido, pero pronto se quedará sin combinaciones de teclas para recordar. Aquí es donde entran en juego los modificadores, que le permiten hacer cosas más locas. Analicemos un ejemplo de los documentos de AHK:

directivas autohotkey

El #IfWinActive verde se llama directiva y aplica contexto adicional a las teclas de acceso rápido físicamente debajo de él en el script. Cualquier tecla de acceso rápido posterior solo se activará si la condición es verdadera, y puede agrupar varias teclas de acceso rápido bajo una directiva. Esta directiva no cambiará hasta que acceda a otra directiva, pero puede restablecerla con un #Si en blanco (y si eso parece un truco, bienvenido a AHK).

La directiva aquí verifica si una ventana específica está abierta, definida por ahk_class Notepad. Cuando AHK recibe la entrada «Win + C», activará la acción bajo el primer #IfWinActive solo si la directiva devolvió verdadero, y luego verificará el segundo si no lo hizo. AHK tiene muchas directivas, y puede encontrarlas todas en los docs.

AutoHotkey también tiene hotstrings, que funcionan como teclas de acceso rápido, excepto que reemplazan una cadena completa de texto. Esto es similar a cómo funciona la autocorrección; de hecho, hay una secuencia de comandos de autocorrección para AHK, pero admite cualquier acción de AHK.

cadenas de acceso autohotkey

La cadena interactiva coincidirá con la cadena solo si se escribe exactamente. También eliminará automáticamente el texto coincidente para reemplazar la cadena activa, aunque este comportamiento se puede ajustar.

Comportamiento

Una acción en AHK es cualquier cosa que tenga un efecto externo en el sistema operativo. AHK tiene muchas acciones. No podemos explicarlos todos, por lo que seleccionaremos algunos útiles.

Enviando entrada, ya sea texto o varias pulsaciones de botones.
Mover el mouse. De hecho, AHK a veces se marca erróneamente como software de trampa para videojuegos, ya que la gente ha creado aimbots completamente funcionales con él.
Hacer clic con el mouse, con posicionamiento relativo a la ventana actual.
Visualización de menús de diálogo, completar con formularios y campos de entrada.
Mover ventanas alrededor, ajuste de tamaño, apertura y cierre.
Tocando musica.
Escribir en el registro de Windows. Sí, en serio.
Modificar el contenido del portapapeles.
Leer y escribir archivos. Puede recorrer archivos y ejecutar acciones en cada línea. AHK puede incluso escribir en archivos .ahk y ajustar su propio código.

La mayoría de estas acciones también tendrán comandos orientados a la información asociados. Por ejemplo, puede escribir en el portapapeles, pero también puede obtener el contenido del portapapeles para almacenar en una variable y ejecutar funciones cuando cambia el portapapeles.

Uniéndolo todo con estructuras de control

AHK no sería lo que es sin todas las estructuras de control que lo hacen Turing-completo.

Además de las directivas #If, también tiene acceso a Si dentro de los bloques de acción. AHK tiene por bucles llave rizada bloques Tratar y Catch declaraciones, y muchos otros. Puede acceder a datos externos desde el bloque de acción y almacenarlos en variables o objetos para usar más tarde. Puedes definir funciones personalizadas y etiquetas. Realmente, cualquier cosa que puedas hacer fácilmente en otro lenguaje de programación probablemente puedas hacer en AHK con un poco de dolor de cabeza y un vistazo a los documentos.

Por ejemplo, imagine que tiene una tarea aburrida y repetitiva que requiere que haga clic en varios botones seguidos y espere a que un servidor responda antes de volver a hacerlo ad infinitum. Puede usar AHK para automatizar esto. Debería definir algunos bucles para mover el mouse a ubicaciones específicas, hacer clic y luego pasar al siguiente lugar y hacer clic nuevamente. Agregue algunas declaraciones de espera para que no se rompa. Incluso podrías intentar leer el color de los píxeles en la pantalla para determinar qué está pasando.

Una cosa es segura: su guión probablemente no será bonito. Pero tampoco lo es AutoHotkey, y está bien.