Saltar al contenido

Cómo escribir un script de AutoHotkey

 

autohotkey
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 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 .ahk extensión. 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 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 script autohotkey

¿Cómo funciona AutoHotkey?

En esencia, AHK hace una cosa: vincular acciones a teclas de acceso rápido. Hay muchas acciones diferentes, combinaciones de teclas de acceso rápido y estructuras de control, 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 libra (#) 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 la Run mando. El bloque se termina con un return al final. Puede realizar cualquier cantidad de acciones antes de return. 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 .ahk y configúrelo 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 izquierda y derecha con el < y > modificadores, lo que abre mucho espacio para teclas de acceso rápido adicionales. Por ejemplo, <! es Alt a la izquierda y> + 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 te permiten hacer cosas más locas. Analicemos un ejemplo de los documentos de AHK:

directivas autohotkey

El verde #IfWinActive se llama un directivay aplica contexto adicional a las teclas rápidas 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 espacio en blanco #If (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 debajo de la primera #IfWinActive solo si la directiva devolvió verdadero, y luego verifique la segunda 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, así que elegiremos algunos útiles.

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 #If directivas, también tiene acceso a If dentro de los bloques de acción. AHK tiene For bucles llave rizada bloques Try y Catch declaraciones, y muchas otras. 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. Querrí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.