Com escriure un script AutoHotkey

AutoHotkey és un programari fantàstic però complicat. Inicialment es pretenia tornar a connectar les tecles d'accés directe personalitzades a diferents accions, però ara és una suite completa d'automatització de Windows.

AHK no és especialment difícil d’aprendre per als usuaris nous, ja que el concepte general és bastant senzill, però és un llenguatge de programació complet i complet de Turing. Recollireu la sintaxi molt més fàcilment si teniu formació en programació o coneixeu els conceptes.

Instal·lació i ús de AutoHotkey

El procés d’instal·lació d’AutoHotkey és senzill. Descarregueu l'instal·lador del lloc web oficial i executeu-lo. Trieu "Instal·lació expressa". Després d’instal·lar el programari, podeu fer clic amb el botó dret a qualsevol lloc i seleccionar Nou> Script d’Hotkey automàtic per crear un nou script.

Els scripts AHK són fitxers de text amb un fitxer .ahk extensió. Si hi feu clic amb el botó dret, obtindreu algunes opcions:

  • "Executa script" carregarà el vostre script amb el temps d'execució d'AHK.
  • "Compile Script" l'agruparà amb un executable AHK per crear un fitxer EXE que pugueu executar.
  • "Edita script" obrirà el vostre script a l'editor de text predeterminat. Podeu utilitzar el Bloc de notes per escriure scripts AHK, però us recomanem que utilitzeu SciTE4AutoHotkey, un editor per a AHK que admet ressaltat i depuració de sintaxi.

Mentre s’executa un script, ja sigui un EXE o no, el trobareu en segon pla a l’àrea de notificacions de Windows, també coneguda com a safata del sistema. Cerqueu la icona verda amb una "H".

Per sortir, posar en pausa, tornar a carregar o editar un script, feu clic amb el botó dret a la icona de notificació i seleccioneu l'opció adequada. Els scripts continuaran executant-se en segon pla fins que en sortiu. També desapareixeran quan tanqueu la sessió de Windows o reinicieu el vostre PC, és clar.

Com funciona AutoHotkey?

Al centre, AHK fa una cosa: vincular les accions a les tecles d'accés directe. Hi ha moltes accions diferents, combinacions de tecles d'accés directe i estructures de control, però tots els scripts funcionaran amb el mateix principi. Aquí teniu un script AHK bàsic que llança Google Chrome sempre que premeu Windows + C:

#c :: Executa Chrome return

La primera línia defineix una tecla d'accés directe. El signe de lliura (#) és abreujat per a la clau de Windows i c és la tecla C del teclat. Després, hi ha dos punts (: :) per significar l’inici d’un bloc d’acció.

La següent línia és una acció. En aquest cas, l'acció llança una aplicació amb el fitxer Correr comandament. El bloc s’acaba amb un tornar al final. Podeu fer qualsevol nombre d 'accions abans de tornar. Tots dispararan de manera seqüencial.

Així, heu definit un mapatge senzill de l'acció. Podeu col·locar-ne tantes com vulgueu en un .ahk fitxer i configureu-lo perquè s’executi en segon pla, sempre buscant tecles d'accés directe per tornar a mapar.

Tecles d'accés directe i modificadors

Podeu trobar una llista completa dels modificadors d’AHK a la documentació oficial, però ens centrarem en les funcions més útils (i interessants).

Totes les tecles modificadores tenen abreviatures d’un sol caràcter. Per exemple, # ! ^ + són Windows, Alt, Control i Maj, respectivament. També podeu diferenciar entre Alt, dret i esquerre, Control i Maj amb el < i > modificadors, que obre molt d'espai per a les tecles d'accés directe addicionals. Per exemple, + és correcte Maj. Feu un cop d'ull a la llista de claus per obtenir tot el que pugueu fer referència. (Spoiler: podeu fer referència a gairebé totes les tecles. Fins i tot podeu fer referència a altres dispositius d’entrada que no siguin de teclat amb una petita extensió).

Podeu combinar tantes tecles com vulgueu en una tecla d'accés ràpid, però aviat us quedareu sense combinacions de tecles per recordar. Aquí són on entren els modificadors, que us permeten fer coses més esbojarrades. Descrivim un exemple dels documents AHK:

El verd #IfWinActive es diu adirectiva, i aplica un context addicional a les tecles d'accés directe que hi ha a sota de l'script. Qualsevol tecla d'accés ràpid després d'ella només s'activarà si la condició és certa i podeu agrupar diverses tecles d'accés directe en una directiva. Aquesta directiva no canviarà fins que no feu clic a una altra directiva, però podeu restablir-la amb un espai en blanc #Si (i si això sembla un hack, benvingut a AHK).

La directiva aquí comprova si hi ha una finestra específica oberta, definida per ahk_class Bloc de notes. Quan AHK rep l'entrada "Win + C", activarà l'acció sota la primera #IfWinActive només si la directiva ha tornat certa i, a continuació, comproveu la segona si no és així. AHK té moltes directives i les podeu trobar a la documentació.

AutoHotkey també té cadenes d'accés directe, que funcionen com les tecles d'accés ràpid, tret de substituir tota una cadena de text. Això és similar al funcionament de la correcció automàtica (de fet, hi ha un script de correcció automàtica per a AHK), però admet qualsevol acció d'AHK.

La cadena ràpida coincidirà amb la cadena només si s'ha escrit exactament. Eliminarà automàticament el text que coincideixi per substituir la cadena activa, tot i que aquest comportament es pot ajustar.

Accions

Una acció a AHK és qualsevol cosa que tingui un efecte extern en el sistema operatiu. AHK té moltes accions. No podem explicar-los tots, de manera que en triarem alguns d’utils.

  • S'està enviant l'entrada, tant si es tracta de text com si es premen diversos botons.
  • Moure el ratolí. De fet, AHK de vegades es marca erròniament com a programari de trampes per als videojocs, ja que la gent ha creat objectbots plenament funcionals amb ell.
  • Fent clic amb el ratolí, amb un posicionament relatiu a la finestra actual.
  • Es mostren els menús de diàleg, amb formularis i camps d'entrada.
  • Moure les finestres, ajustar la mida i obrir i tancar.
  • Tocant música.
  • Escrivint al registre de Windows. Sí segur.
  • Modificació del contingut del porta-retalls.
  • Lectura i escriptura de fitxers. Podeu fer un bucle entre fitxers i executar accions a cada línia. AHK fins i tot pot escriure a .ahk fitxers i ajustar el seu propi codi.

La majoria d’aquestes accions també tindran associades ordres orientades a la informació. Per exemple, podeu escriure al porta-retalls, però també podeu obtenir el contingut del porta-retalls per emmagatzemar-lo en una variable i executar funcions quan el portapapers canviï.

Lligant-ho tot amb estructures de control

AHK no seria el que és sense totes les estructures de control que fan que Turing sigui complet.

A més del #Si directives, també hi teniu accés Si dins dels blocs d'acció. AHK té Per a bucles, blocs de tirants arrissats, Proveu-ho i Captura declaracions, i moltes altres. Podeu accedir a dades externes des del bloc d’acció i emmagatzemar-les en variables o objectes per utilitzar-les més tard. Podeu definir funcions i etiquetes personalitzades. Realment, qualsevol cosa que pugueu fer fàcilment en un altre llenguatge de programació probablement pugueu fer-la a AHK amb una mica de mal de cap i un cop d'ull als documents.

Per exemple, imagineu-vos que teniu una tasca avorrida i repetitiva que requereix que feu clic a diversos botons seguits i espereu que el servidor respongui abans de tornar-la a fer infinitament. Podeu utilitzar AHK per automatitzar això. Voleu definir uns quants bucles per moure el ratolí a ubicacions específiques, fer clic i, a continuació, passar al lloc següent i tornar a fer clic. Introduïu unes quantes declaracions d’espera perquè no es trenqui. Fins i tot podeu provar de llegir el color dels píxels a la pantalla per determinar què passa.

Una cosa és certa: el vostre guió probablement no serà bonic. Però AutoHotkey tampoc no ho és, i està bé.


$config[zx-auto] not found$config[zx-overlay] not found