Comment écrire un script AutoHotkey

AutoHotkey est un logiciel fantastique mais compliqué. Il était initialement destiné à relier les raccourcis clavier personnalisés à différentes actions, mais il s’agit maintenant d’une suite d’automatisation Windows complète.

AHK n’est pas particulièrement difficile à apprendre pour les nouveaux utilisateurs, car le concept général est assez simple, mais c’est un langage de programmation complet et complet de Turing. Vous apprendrez la syntaxe beaucoup plus facilement si vous avez une formation en programmation ou si vous êtes familier avec les concepts.

Installation et utilisation d’AutoHotkey

Le processus d’installation d’AutoHotkey est simple. Téléchargez le installateur à partir du site officiel et exécutez-le. Choisissez «Installation express». Après avoir installé le logiciel, vous pouvez cliquer avec le bouton droit n’importe où et sélectionner Nouveau> Script AutoHotkey pour créer un nouveau script.

Les scripts AHK sont des fichiers texte avec une extension .ahk. Si vous cliquez dessus avec le bouton droit de la souris, vous obtiendrez quelques options:

«Run Script» chargera votre script avec le runtime AHK.
«Compile Script» l’associera à un exécutable AHK pour créer un fichier EXE que vous pourrez exécuter.
«Edit Script» ouvrira votre script dans votre éditeur de texte par défaut. Vous pouvez utiliser le Bloc-notes pour écrire des scripts AHK, mais nous vous recommandons d’utiliser SciTE4AutoHotkey, un éditeur pour AHK qui prend en charge la coloration syntaxique et le débogage.

compiler le script autohotkey

Lorsqu’un script est en cours d’exécution, qu’il s’agisse d’un EXE ou non, vous le trouverez en arrière-plan dans la zone de notification Windows, également appelée barre d’état système. Recherchez l’icône verte avec un «H» dessus.

Pour quitter, mettre en pause, recharger ou modifier un script, cliquez avec le bouton droit sur l’icône de notification et sélectionnez une option appropriée. Les scripts continueront à s’exécuter en arrière-plan jusqu’à ce que vous les quittiez. Ils disparaissent également lorsque vous vous déconnectez de Windows ou redémarrez votre PC, bien sûr.

script autohotkey en cours d'exécution

Comment fonctionne AutoHotkey?

À la base, AHK fait une chose: lier les actions aux raccourcis clavier. Il existe de nombreuses actions, combinaisons de raccourcis clavier et structures de contrôle différentes, mais tous les scripts fonctionneront sur le même principe. Voici un script AHK de base qui lance Google Chrome chaque fois que vous appuyez sur Windows + C:

#c::
Run Chrome
return

La première ligne définit un raccourci clavier. Le signe dièse (#) est l’abréviation de la touche Windows et c est la touche C du clavier. Après cela, il y a un double deux-points (: 🙂 pour signifier le début d’un bloc d’action.

La ligne suivante est une action. Dans ce cas, l’action lance une application avec la commande Exécuter. Le bloc est terminé avec un retour à la fin. Vous pouvez avoir n’importe quel nombre d’actions avant le retour. Ils tireront tous séquentiellement.

Juste comme ça, vous avez défini un simple mappage clé-action. Vous pouvez en placer autant que vous le souhaitez dans un fichier .ahk et le configurer pour qu’il s’exécute en arrière-plan, toujours à la recherche de raccourcis clavier à remapper.

Raccourcis clavier et modificateurs

Vous pouvez trouver une liste complète des modificateurs d’AHK dans la documentation officielle, mais nous allons nous concentrer sur les fonctionnalités les plus utiles (et les plus intéressantes).

Les touches de modification ont toutes des raccourcis à un seul caractère. Par exemple, # ! ^ + sont respectivement Windows, Alt, Control et Shift. Vous pouvez également faire la différence entre Alt, Contrôle et Maj gauche et droit avec les modificateurs, ce qui ouvre beaucoup de place pour des raccourcis clavier supplémentaires. Par exemple, + correspond à Shift droit. Jetez un œil au liste des clés pour tout ce que vous pouvez référencer. (Spoiler: vous pouvez référencer presque toutes les touches. Vous pouvez même référencer d’autres périphériques d’entrée non clavier avec un petite extension).

Vous pouvez combiner autant de touches que vous le souhaitez en une seule touche de raccourci, mais vous serez bientôt à court de combinaisons de touches à retenir. C’est là qu’interviennent les modificateurs, qui vous permettent de faire des choses plus folles. Décrivons un exemple à partir de la documentation AHK:

directives autohotkey

Le vert #IfWinActive est appelé une directive, et applique un contexte supplémentaire aux raccourcis clavier physiquement en dessous dans le script. Tout raccourci clavier après celui-ci ne se déclenchera que si la condition est vraie, et vous pouvez regrouper plusieurs raccourcis clavier sous une directive. Cette directive ne changera pas tant que vous n’aurez pas atteint une autre directive, mais vous pouvez la réinitialiser avec un #If vide (et si cela semble être un hack, bienvenue dans AHK).

La directive ici vérifie si une fenêtre spécifique est ouverte, définie par ahk_class Notepad. Lorsque AHK reçoit l’entrée «Win + C», il déclenchera l’action sous le premier #IfWinActive uniquement si la directive retournait true, puis vérifiera la seconde si ce n’est pas le cas. AHK a beaucoup de directives, et vous pouvez toutes les trouver dans les docs.

AutoHotkey a également chaînes chaudes, qui fonctionnent comme des raccourcis clavier, sauf en remplaçant une chaîne entière de texte. Ceci est similaire au fonctionnement de la correction automatique. En fait, il existe un script de correction automatique pour AHK – mais prend en charge toute action AHK.

hotstrings autohotkey

Le hotstring correspondra à la chaîne uniquement si elle est saisie exactement. Il supprimera également automatiquement le texte correspondant pour remplacer la chaîne sensible, bien que ce comportement puisse être ajusté.

Actions

Une action dans AHK est tout ce qui a un effet extérieur sur le système d’exploitation. AHK a beaucoup d’actions. Nous ne pouvons pas tous les expliquer, nous en choisirons donc quelques-uns utiles.

Envoi d’entrée, qu’il s’agisse de texte ou de pressions sur divers boutons.
Déplacer la souris. En fait, AHK est parfois signalé à tort comme un logiciel de triche pour les jeux vidéo, car les gens en ont fait des aimbots pleinement fonctionnels.
Clic de la souris, avec positionnement par rapport à la fenêtre courante.
Affichage des menus de dialogue, complétez les formulaires et les champs de saisie.
Déplacement des fenêtres, réglage de la taille, ouverture et fermeture.
Jouer de la musique.
Ecrire dans le registre Windows. Oui vraiment.
Modifier le contenu du presse-papiers.
Lecture et écriture de fichiers. Vous pouvez parcourir les fichiers et exécuter des actions sur chaque ligne. AHK peut même écrire dans des fichiers .ahk et ajuster son propre code.

La plupart de ces actions seront également associées à des commandes orientées information. Par exemple, vous pouvez écrire dans le presse-papiers, mais vous pouvez également obtenir le contenu du presse-papiers pour stocker dans une variable et exécuter des fonctions lorsque le presse-papiers change.

Tout lié avec des structures de contrôle

AHK ne serait pas ce qu’il est sans toutes les structures de contrôle qui le font Turing-complet.

En plus des directives #If, vous avez également accès à Si à l’intérieur des blocs d’action. AHK a Pour boucles, accolade blocs, Essayer et les déclarations Catch, et bien d’autres. Vous pouvez accéder aux données externes à partir du bloc d’action et les stocker dans variables ou objets à utiliser plus tard. Vous pouvez définir fonctions personnalisées et Étiquettes. Vraiment, tout ce que vous pourriez faire facilement dans un autre langage de programmation, vous pouvez probablement le faire en AHK avec un peu de mal de tête et un regard à travers la documentation.

Par exemple, imaginez que vous ayez une tâche ennuyeuse et répétitive qui vous oblige à cliquer sur plusieurs boutons d’affilée et à attendre qu’un serveur réponde avant de recommencer à l’infini. Vous pouvez utiliser AHK pour automatiser cela. Vous voudriez définir quelques boucles pour déplacer la souris vers des emplacements spécifiques, cliquer, puis passer à l’endroit suivant et cliquer à nouveau. Jetez quelques déclarations d’attente pour ne pas le casser. Tu pourrais même essayer de lire la couleur des pixels à l’écran pour déterminer ce qui se passe.

Une chose est sûre: votre script ne sera probablement pas joli. Mais AutoHotkey non plus, et ce n’est pas grave.