AutoHotkey, abbreviato AHK, è un software potente ma non sempre semplice da padroneggiare. Inizialmente concepito per la riassegnazione di tasti di scelta rapida, si è evoluto in una vera e propria suite per l’automazione di processi in ambiente Windows.
Sebbene il concetto di base di AHK sia intuitivo, la sua curva di apprendimento può risultare ripida, specialmente per chi è alle prime armi con la programmazione. AHK è infatti un linguaggio completo, capace di eseguire qualsiasi algoritmo. Chi ha già dimestichezza con i fondamenti della programmazione troverà più semplice la comprensione della sua sintassi.
Installazione e primo utilizzo di AutoHotkey
Installare AutoHotkey è un gioco da ragazzi. Basta scaricare il file di installazione dal sito ufficiale e avviare il programma. Durante l’installazione, si consiglia di scegliere l’opzione “Installazione rapida”. Una volta completata l’installazione, è possibile creare un nuovo script facendo clic col tasto destro del mouse in una qualsiasi cartella e selezionando la voce “Nuovo > Script AutoHotkey”.
Gli script AHK sono file di testo con estensione “.ahk”. Facendo clic col tasto destro su uno script, appariranno alcune opzioni:
“Esegui script” avvia lo script tramite il runtime AHK.
“Compila script” crea un eseguibile EXE contenente lo script, che potrà essere eseguito senza il runtime AHK.
“Modifica script” apre lo script nell’editor di testo predefinito. Sebbene sia possibile utilizzare il Blocco note, si raccomanda di utilizzare SciTE4AutoHotkey, un editor specifico per AHK che offre funzionalità come l’evidenziazione della sintassi e il debug.
Quando uno script è in esecuzione, sia come file EXE o meno, è possibile trovarlo in background nell’area di notifica di Windows (la barra delle applicazioni). L’icona di AHK è verde, con una “H” al centro.
Per uscire, sospendere, ricaricare o modificare uno script, è sufficiente fare clic col tasto destro sull’icona nella barra delle applicazioni e scegliere l’opzione desiderata. Gli script rimangono attivi in background finché non vengono chiusi manualmente. Gli script si interrompono anche quando si chiude Windows o si riavvia il computer.
Come funziona AutoHotkey?
La funzionalità di base di AHK è l’associazione di azioni a tasti di scelta rapida. Esistono numerose azioni, combinazioni di tasti e strutture di controllo, ma tutti gli script si basano su questo principio. Ecco un semplice script AHK che avvia Google Chrome quando si preme Windows + C:
#c:: Run Chrome return
La prima riga definisce il tasto di scelta rapida. Il simbolo cancelletto (#) rappresenta il tasto Windows, mentre “c” indica il tasto “C” sulla tastiera. I due punti (::) indicano l’inizio del blocco di azioni.
La riga successiva è un’azione. In questo caso, il comando “Run” avvia l’applicazione specificata, ovvero Chrome. Il blocco si conclude con il comando “return”. È possibile inserire quante azioni si desidera prima del comando “return”. Tali azioni saranno eseguite in sequenza.
In questo modo, è stata definita un’associazione semplice tra un tasto e un’azione. È possibile inserire un numero illimitato di associazioni in un file .ahk, che rimarrà in esecuzione in background, monitorando costantemente le combinazioni di tasti configurate.
Tasti di scelta rapida e modificatori
Un elenco esaustivo dei modificatori AHK è disponibile nella documentazione ufficiale, ma ci concentreremo su quelli più utilizzati. I modificatori sono rappresentati da singole lettere: # (Windows), ! (Alt), ^ (Control) e + (Shift). È inoltre possibile distinguere tra i tasti Alt, Control e Shift di sinistra e destra, offrendo ancora più combinazioni di tasti di scelta rapida. Ad esempio, + corrisponde allo Shift di destra. L’elenco delle chiavi contiene tutti i tasti che è possibile utilizzare (e sono davvero tanti!). Persino dispositivi di input non da tastiera possono essere inclusi, tramite estensioni.
Si possono combinare tutti i tasti che si desidera, ma diventa difficile ricordare tutte le combinazioni. È qui che i modificatori tornano utili, permettendo di creare configurazioni più sofisticate. Ecco un esempio dalla documentazione di AHK:
La riga verde con #IfWinActive è una “direttiva”. Questa direttiva specifica che i tasti di scelta rapida successivi si attiveranno solo se la condizione è vera. È possibile raggruppare più tasti di scelta rapida sotto una singola direttiva. La direttiva rimane attiva fino all’incontro con un’altra direttiva, oppure può essere reimpostata con la direttiva vuota #If (e se tutto ciò sembra un “trucco”, benvenuti nel mondo di AHK!).
La direttiva in questo esempio controlla se una finestra specifica, identificata dalla classe “ahk_class Notepad”, è aperta. Quando AHK riceve l’input “Win + C”, eseguirà l’azione specificata sotto il primo #IfWinActive solo se la direttiva restituisce “vero”. Altrimenti, controllerà la direttiva successiva. AHK mette a disposizione molte altre direttive, tutte documentate qui.
AutoHotkey offre anche le hotstring, che funzionano come tasti di scelta rapida, ma sostituiscono intere stringhe di testo. Un meccanismo simile viene utilizzato per la correzione automatica. Esiste persino uno script di correzione automatica per AHK, ma le hotstring supportano qualsiasi azione AHK.
Le hotstring vengono attivate solo se la stringa è stata digitata esattamente. In automatico, il testo corrispondente viene rimosso per essere sostituito dalla hotstring, sebbene questo comportamento possa essere modificato.
Azioni
Un’azione in AHK è qualsiasi comando che ha un impatto sul sistema operativo. AHK ha una grande varietà di azioni. Non possiamo descriverle tutte, ma ne elenchiamo alcune utili:
Invio di input, sia di testo che di sequenze di tasti.
Spostamento del mouse. AHK, a volte, viene erroneamente considerato un software cheat per videogiochi, in quanto alcuni hanno creato aimbot funzionali usando questo programma.
Click del mouse, con posizionamento relativo alla finestra corrente.
Visualizzazione di menu di dialogo, con la possibilità di includere form e campi di input.
Spostamento di finestre, ridimensionamento, apertura e chiusura.
Riproduzione di suoni.
Scrittura nel registro di Windows. Ebbene sì!
Modifica del contenuto degli Appunti.
Lettura e scrittura di file. È possibile scorrere le righe di un file ed eseguire azioni su ciascuna di esse. AHK può persino modificare il proprio codice, scrivendo su file .ahk.
La maggior parte di queste azioni dispone anche di comandi per recuperare informazioni. Ad esempio, è possibile scrivere negli appunti, ma anche ottenere il contenuto attuale degli appunti, salvarlo in una variabile e agire in base ai cambiamenti del contenuto.
Strutture di controllo
AHK non sarebbe un linguaggio Turing-completo senza le sue strutture di controllo.
Oltre alle direttive #If, è possibile utilizzare la struttura If all’interno dei blocchi di azioni. AHK include anche cicli For, blocchi di codice con parentesi graffe, dichiarazioni Try e Catch, e molto altro. È possibile leggere dati esterni all’interno di un blocco di azioni e memorizzarli in variabili o oggetti da usare successivamente. Si possono definire funzioni personalizzate e etichette. In sostanza, qualsiasi operazione realizzabile in altri linguaggi di programmazione è fattibile anche in AHK, con un po’ di impegno e consultando la documentazione.
Ad esempio, immagina di dover eseguire ripetutamente una noiosa operazione che richiede di cliccare su diversi pulsanti e attendere una risposta da un server. È possibile automatizzare questo processo con AHK. Si possono definire dei cicli per spostare il mouse in posizioni specifiche, cliccare, passare alla posizione successiva e ripetere l’azione. Si possono aggiungere delle istruzioni di attesa per non mandare in crash lo script. Persino la lettura dei colori dei pixel dello schermo può essere utilizzata per determinare lo stato del programma, tramite il comando PixelGetColor.
Il risultato, probabilmente, non sarà uno script “pulito”. Ma del resto, neanche AHK è un linguaggio elegante, e va bene così!