AutoHotkey
# AutoHotkey

AutoHotkey es un lenguaje de programación tipo script libre y de código abierto, que en principio se diseñó para la creación de macros y automatización, pero que actualmente tiene todo lo necesario para programar, como cualquier lenguaje de programación. Permite a los usuarios automatizar tareas repetitivas en Microsoft Windows. Cualquier interfaz de usuario de cualquier aplicación puede ser modificada por AutoHotkey. Utiliza un lenguaje de script personalizado que está específicamente orientado a proporcionar atajos de teclado o teclas de acceso rápido.

## Características

Los scripts de AutoHotkey se pueden utilizar para iniciar programas, abrir documentos, enviar pulsaciones de teclas y enviar clics y movimientos del ratón. Los scripts también pueden asignar, recuperar y manipular variables, hacer bucles y manipular ventanas, archivos y carpetas. Estos comandos pueden ser activados mediante una combinación de teclas, como un script que abra un navegador de Internet cada vez que el usuario pulse Ctrl+Alt+i en el teclado. Las teclas del teclado también se pueden reasignar o deshabilitarse (por ejemplo, para que al pulsar la tecla q se muestre una letra r, o nada en absoluto). AutoHotkey también permite hotstrings que automáticamente reemplazarán cierto texto mientras se escribe; el uso más común es expandir abreviaturas, por ejemplo, cambiar «ayto» por «ayuntamiento» cuando se escribe.

Se pueden realizar tareas más complejas con los formularios de entrada de datos personalizados (ventanas GUI), trabajando con el registro del sistema, o usando la API de Windows mediante llamadas a funciones de DLL. Los scripts se pueden compilar en un archivo ejecutable que se puede ejecutar en otros ordenadores que no tengan instalado AutoHotkey. El código fuente está escrito en C++ y se puede compilar con Visual Studio Express. También se pueden realizar tareas relacionadas con las Expresiones Regulares.

Se permite el acceso a la memoria a través de punteros al igual que en C.

### Tareas comunes

* Reasignación del teclado, por ejemplo, de QWERTY a Dvorak u otras distribuciones de teclado alternativo.
* Uso de métodos abreviados para rellenar los nombres de archivos de uso frecuente u otras frases.
* Controlar el cursor del ratón con el teclado o el joystick.
* Apertura de los programas, documentos y sitios web con pulsaciones de teclado simples.
* Añadir una firma al correo electrónico, en mensajes de foros, etc
* Supervisión del sistema y cierre automático de programas no deseados.
* Programación de un recordatorio automático, análisis del sistema, o de copia de seguridad.
* Automatización de tareas repetitivas en juegos en línea.
* Rellenar formularios de concursos y de promociones de forma automática (es decir, puede escribir su nombre, dirección, etc. de forma automática).
* Pruebas de código rápidas antes de implementarlo en otro lenguaje de programación (que puede ser más complicado).
