AutoHotkey este un instrument remarcabil, deși cu o curbă de învățare. Scopul inițial a fost de a permite utilizatorilor să atribuie comenzi rapide personalizate unor acțiuni diverse, dar s-a dezvoltat într-o platformă complexă de automatizare pentru sistemul Windows.
Deși conceptul de bază este accesibil, AHK este, de fapt, un limbaj de programare complet, cu toate caracteristicile unui limbaj Turing-complet. Dacă aveți deja experiență în programare sau sunteți familiarizat cu conceptele sale, veți înțelege mai rapid sintaxa.
Instalarea și utilizarea AutoHotkey
Procesul de instalare pentru AutoHotkey este simplu și direct. Descărcați
programul de instalare de pe pagina oficială și porniți-l. Alegeți opțiunea „Instalare rapidă”. După finalizarea instalării, puteți da clic dreapta oriunde și selectați Nou > Script AutoHotkey pentru a crea un script nou.
Scripturile AHK sunt fișiere text cu extensia .ahk. Un clic dreapta pe aceste fișiere vă oferă câteva opțiuni:
„Run Script” va executa scriptul folosind programul AHK.
„Scriptul de compilare” transformă scriptul într-un fișier EXE, care poate fi rulat independent.
„Edit Script” deschide scriptul în editorul de text implicit. Deși puteți folosi Notepad, vă recomandăm SciTE4AutoHotkey, un editor specializat pentru AHK, care oferă funcții de evidențiere a sintaxei și depanare.
Când un script este activ, indiferent dacă este sub forma unui fișier EXE sau nu, acesta va rula în fundal și veți vedea pictograma sa în bara de sistem (zona de notificare). Căutați pictograma verde cu un „H”.
Pentru a închide, suspenda, reîncărca sau edita un script, dați clic dreapta pe pictograma din bara de sistem și selectați opțiunea dorită. Scripturile vor continua să funcționeze până când le închideți manual. De asemenea, vor fi oprite atunci când vă deconectați de la Windows sau reporniți calculatorul.
Cum funcționează AutoHotkey?
În esență, AHK are o funcție centrală: atribuie acțiuni tastelor rapide. Există o gamă largă de acțiuni, combinații de taste rapide și structuri de control, dar toate scripturile funcționează pe baza aceluiași principiu. Mai jos, aveți un exemplu de script AHK care pornește Google Chrome apăsând tastele Windows+C:
#c:: Run Chrome return
Prima linie specifică o comandă rapidă. Simbolul diez (#) reprezintă tasta Windows, iar c este tasta C de pe tastatură. Urmează două puncte (::), care marchează începutul unui bloc de acțiuni.
Linia următoare indică acțiunea propriu-zisă. În acest caz, comanda Run lansează o aplicație. Blocul se încheie cu o comandă return. Puteți include oricâte acțiuni doriți înainte de return, ele vor fi executate secvențial.
Acum ați configurat o mapare simplă de la tastă la acțiune. Puteți introduce numeroase astfel de mapări într-un fișier .ahk, iar apoi puteți seta fișierul să ruleze în fundal, monitorizând constant tastele rapide pentru a le remapa.
Taste rapide și modificatoare
O listă detaliată a modificatorilor AHK este disponibilă în documentația oficială, dar vom analiza câteva dintre cele mai utile și interesante.
Fiecare tastă modificatoare este reprezentată printr-un caracter scurt. De exemplu, #, !, ^ și + corespund tastelor Windows, Alt, Control și, respectiv, Shift. De asemenea, puteți distinge între tastele Alt, Control și Shift din stânga și din dreapta utilizând modificatori speciali, ceea ce oferă posibilitatea configurării unor comenzi rapide suplimentare. De exemplu, + este tasta Shift dreapta. Consultați lista de taste pentru a vedea toate tastele la care vă puteți referi. (Surpriză: puteți face referire la aproape orice tastă, dar și la alte dispozitive de intrare non-tastatură cu ajutorul unei extensii).
Puteți combina mai multe taste într-o singură comandă rapidă, dar veți rămâne repede fără combinații ușor de reținut. Modificatorii vă ajută să efectuați acțiuni mai complexe. Să analizăm un exemplu din documentația AHK:
Linia verde #IfWinActive reprezintă o directivă care aplică un context adițional tastelor rapide de sub ea în script. Orice comandă rapidă de după aceasta va fi declanșată doar dacă condiția este îndeplinită. Puteți grupa mai multe comenzi rapide sub o singură directivă. Directiva va rămâne activă până când veți întâlni o altă directivă, dar o puteți reseta cu un #If gol (și dacă vi se pare o soluție rapidă, atunci bine ați venit în lumea AHK).
În acest exemplu, directiva verifică dacă o anumită fereastră este deschisă, identificată prin ahk_class Notepad. Când AHK detectează combinația de taste „Win+C”, va executa acțiunea de sub primul #IfWinActive doar dacă directiva a returnat adevărat, și apoi va verifica și a doua directivă dacă prima a returnat fals. AHK are numeroase directive, pe care le puteți găsi în documentație.
AutoHotkey are, de asemenea, șiruri rapide, care funcționează similar cu tastele rapide, dar în loc să execute acțiuni, ele înlocuiesc un șir de text. Aceasta este o funcționalitate similară cu corectarea automată – există chiar și un script de corectare automată pentru AHK – dar suportă orice acțiune AHK.
Șirul rapid se va potrivi doar dacă este tastat exact. Textul introdus va fi eliminat automat pentru a fi înlocuit cu șirul rapid, deși acest comportament poate fi ajustat.
Acțiuni
O acțiune în AHK reprezintă orice operație care afectează direct sistemul de operare. AHK oferă numeroase acțiuni. Nu le putem descrie pe toate, așadar vom evidenția doar câteva dintre cele mai utile.
Transmiterea de intrări, fie că este vorba de text sau de diferite combinații de taste.
Mișcarea mouse-ului. AHK este uneori etichetat în mod eronat ca software de „cheat” pentru jocuri video, deoarece unii utilizatori au creat aimbot-uri complet funcționale cu ajutorul lui.
Clicuri cu mouse-ul, cu opțiunea de a poziționa cursorul în funcție de fereastra activă.
Afișarea meniurilor dialog, cu opțiunea de a include formulare și câmpuri de introducere.
Manipularea ferestrelor, modificarea dimensiunii, deschiderea și închiderea acestora.
Redarea de sunete.
Scrierea în Registrul Windows. Da, ați auzit bine.
Modificarea conținutului clipboard-ului.
Citirea și scrierea fișierelor. Puteți parcurge fișiere și puteți executa acțiuni pentru fiecare linie. AHK poate chiar să scrie în fișiere .ahk și să își modifice propriul cod.
Majoritatea acestor acțiuni sunt însoțite și de comenzi care vizează obținerea de informații. De exemplu, puteți scrie în clipboard, dar puteți, de asemenea, să stocați conținutul clipboard-ului într-o variabilă și să executați funcții atunci când clipboard-ul se modifică.
Combinarea elementelor cu structuri de control
AHK nu ar fi atât de puternic fără structurile de control care îl fac Turing-complet.
Pe lângă directivele #If, aveți acces la If în interiorul blocurilor de acțiuni. AHK are For bucle, blocuri definite prin acolade, instrucțiuni Try și Catch și multe altele. Puteți accesa date din exteriorul blocului de acțiuni și le puteți salva în variabile sau obiecte pentru a fi folosite mai târziu. Puteți defini funcții personalizate și etichete. Practic, tot ceea ce ați putea face cu ușurință într-un alt limbaj de programare, probabil că veți putea face și în AHK, cu puțin efort și consultând documentația.
Să presupunem că aveți o sarcină plictisitoare, repetitivă, care presupune să dați clic pe mai multe butoane succesiv și să așteptați ca un server să răspundă înainte de a repeta procesul. Puteți utiliza AHK pentru a automatiza acest proces. Puteți defini câteva bucle pentru a muta mouse-ul la anumite locații, dați clic, apoi treceți la locația următoare și dați clic din nou. Puteți introduce câteva instrucțiuni de așteptare pentru a evita eventualele erori. Ați putea chiar încerca să citiți culoarea pixelilor de pe ecran pentru a determina ce se întâmplă.
Un lucru este cert: scriptul creat nu va fi cel mai elegant. Însă nici AutoHotkey nu este, iar asta nu este o problemă.