AutoHotkey est un outil puissant, bien que sa maîtrise puisse sembler complexe au premier abord. Conçu initialement pour personnaliser les raccourcis clavier, il s’est transformé en une solution complète d’automatisation pour Windows.
L’apprentissage d’AHK n’est pas insurmontable pour les débutants, car son principe de base est relativement simple. Cependant, il s’agit d’un langage de programmation complet, validant le concept de Turing. Une expérience préalable en programmation ou une familiarité avec les concepts clés facilitera grandement l’assimilation de sa syntaxe.
Installation et mise en œuvre d’AutoHotkey
L’installation d’AutoHotkey est un processus simple. Téléchargez l’installateur depuis le site officiel et lancez-le. Optez pour l’option « Installation express ». Une fois le logiciel installé, vous pouvez créer un nouveau script en faisant un clic droit n’importe où et en sélectionnant « Nouveau > Script AutoHotkey ».
Les scripts AHK sont des fichiers texte avec l’extension .ahk. En faisant un clic droit sur un fichier, plusieurs options s’offrent à vous :
«Run Script» lance votre script à l’aide de l’environnement d’exécution AHK.
«Compile Script» transforme votre script en un fichier EXE exécutable.
«Edit Script» ouvre votre script dans votre éditeur de texte par défaut. Bien que le Bloc-notes soit utilisable, nous recommandons SciTE4AutoHotkey, un éditeur spécifiquement conçu pour AHK, offrant la coloration syntaxique et des fonctionnalités de débogage.
Lorsqu’un script est actif, qu’il s’agisse d’un fichier EXE ou non, il apparaît en arrière-plan dans la zone de notification Windows (ou barre d’état système). Repérez l’icône verte ornée d’un « H ».
Pour mettre fin à un script, le suspendre, le recharger ou le modifier, faites un clic droit sur l’icône dans la zone de notification et choisissez l’action souhaitée. Les scripts continuent de s’exécuter en tâche de fond jusqu’à ce que vous les arrêtiez. Ils s’interrompent également lorsque vous vous déconnectez ou redémarrez votre ordinateur.
Principes de fonctionnement d’AutoHotkey
Fondamentalement, AHK a pour mission de lier des actions à des raccourcis clavier. Bien que de nombreuses actions, combinaisons de raccourcis et structures de contrôle existent, tous les scripts partagent le même principe. Voici un exemple de script AHK simple qui lance Google Chrome lorsque vous appuyez sur Windows + C :
#c:: Run Chrome return
La première ligne définit le raccourci clavier. Le symbole dièse (#) représente la touche Windows et « c » correspond à la touche C. Ensuite, les deux points (::) indiquent le début du bloc d’action.
La ligne suivante est l’action elle-même. Dans ce cas, elle ouvre une application grâce à la commande « Run ». Le bloc d’action se termine par l’instruction « return ». Vous pouvez inclure autant d’actions que vous le souhaitez avant l’instruction « return ». Elles seront toutes exécutées séquentiellement.
Ainsi, vous venez de définir un mappage simple entre une touche et une action. Vous pouvez en ajouter autant que vous le souhaitez dans un fichier .ahk et les faire fonctionner en arrière-plan, toujours à l’affût des raccourcis clavier à réaffecter.
Raccourcis clavier et modificateurs
Une liste complète des modificateurs AHK est disponible dans la documentation officielle. Cependant, nous allons nous pencher sur les options les plus utiles et intéressantes.
Les touches de modification sont associées à des raccourcis d’un caractère unique. Par exemple, #, !, ^ et + correspondent respectivement à Windows, Alt, Ctrl et Shift. Vous pouvez également distinguer les touches Alt, Ctrl et Shift gauches et droites grâce à des modificateurs spécifiques, ce qui ouvre un large éventail de raccourcis clavier supplémentaires. Par exemple, + représente la touche Shift droite. Consultez la liste des touches pour découvrir toutes les options disponibles. (Spoiler : vous pouvez référencer quasiment toutes les touches. Vous pouvez même intégrer d’autres périphériques d’entrée non-clavier via une petite extension).
Vous pouvez combiner autant de touches que vous le souhaitez dans un seul raccourci, mais vous risquez rapidement de manquer de combinaisons faciles à mémoriser. C’est là qu’interviennent les modificateurs, permettant des actions plus avancées. Examinons un exemple tiré de la documentation AHK :
La ligne verte #IfWinActive est appelée directive, et elle applique un contexte particulier aux raccourcis clavier situés en dessous dans le script. Tout raccourci clavier suivant ne sera activé que si la condition est vérifiée, et vous pouvez regrouper plusieurs raccourcis clavier sous une même directive. Cette directive reste active jusqu’à ce qu’une nouvelle directive soit rencontrée, mais vous pouvez la désactiver avec une directive #If vide (et si cela vous semble être un « hack », bienvenue dans AHK).
La directive de cet exemple vérifie si une fenêtre spécifique est ouverte, en se basant sur ahk_class Notepad. Lorsque AHK reçoit l’entrée « Win + C », il activera l’action sous la première directive #IfWinActive uniquement si elle est vraie, et vérifiera la seconde si ce n’est pas le cas. AHK possède de nombreuses directives, que vous pouvez retrouver dans la documentation.
AutoHotkey propose également les chaînes réactives, qui se comportent comme des raccourcis clavier, à ceci près qu’elles remplacent une chaîne de texte complète. Le principe est similaire à celui de la correction automatique. Il existe d’ailleurs un script de correction automatique pour AHK, mais qui peut activer toute action AHK.
La chaîne réactive ne sera activée que si la chaîne est saisie avec exactitude. Elle effacera aussi automatiquement le texte correspondant afin de le remplacer par la chaîne réactive, bien que ce comportement puisse être personnalisé.
Actions
Une action dans AHK est toute opération ayant un impact sur le système d’exploitation. AHK offre un vaste panel d’actions. Il est impossible de toutes les explorer ici, mais nous allons mettre en lumière quelques options utiles :
Envoi d’entrée, qu’il s’agisse de texte ou de pressions sur divers boutons.
Déplacement de la souris. D’ailleurs, AHK est parfois, à tort, considéré comme un logiciel de triche dans les jeux vidéo, certains ayant créé des aimbots fonctionnels.
Clic de la souris, avec possibilité de positionner le clic par rapport à la fenêtre active.
Affichage de menus de dialogue, remplissage de formulaires et de champs de saisie.
Gestion des fenêtres, modification de leur taille, ouverture et fermeture.
Lecture de musique.
Écriture dans le registre Windows, oui, c’est possible !
Modification du contenu du presse-papier.
Lecture et écriture de fichiers. Vous pouvez parcourir les fichiers et effectuer des actions sur chaque ligne. AHK peut même modifier son propre code en écrivant dans des fichiers .ahk.
La plupart de ces actions s’accompagnent également de commandes axées sur l’information. Par exemple, vous pouvez modifier le presse-papier, mais aussi en récupérer le contenu afin de le stocker dans une variable et d’effectuer des actions lorsque le presse-papier change.
Structures de contrôle et interconnexions
AHK ne serait pas ce qu’il est sans l’ensemble des structures de contrôle qui le rendent Turing-complet.
Outre les directives #If, vous avez également accès aux instructions If au sein des blocs d’action. AHK propose des boucles For, des blocs accolades, des instructions Try et Catch, et bien d’autres. Vous pouvez accéder à des données externes depuis un bloc d’action et les stocker dans des variables ou objets pour une utilisation ultérieure. Vous pouvez définir des fonctions personnalisées et des étiquettes. En réalité, tout ce que vous pouvez facilement faire dans un autre langage de programmation, vous pouvez probablement le faire dans AHK, en vous creusant un peu les méninges et en consultant la documentation.
Imaginez par exemple que vous ayez une tâche répétitive et fastidieuse qui vous oblige à cliquer sur plusieurs boutons à la suite, et à attendre la réponse d’un serveur avant de recommencer, à l’infini. Vous pouvez utiliser AHK pour automatiser cela. Vous pourriez définir quelques boucles afin de déplacer la souris vers des positions spécifiques, cliquer, puis passer à la position suivante et cliquer à nouveau. Ajoutez quelques instructions d’attente pour éviter de casser le processus. Vous pourriez même essayer de lire la couleur des pixels à l’écran pour évaluer la situation.
Une chose est sûre : votre script ne sera probablement pas une œuvre d’art, mais AutoHotkey n’est pas non plus réputé pour sa beauté, et ce n’est pas grave !