# AutoIt

AutoIt (prononcer aow-toh-it) est un langage de script freeware permettant de créer des automatisations sous le système d’exploitation Microsoft Windows. Dans ses premières versions, le logiciel était principalement destiné à créer des scripts d'automatisation (parfois appelés macros) pour des programmes Microsoft Windows. De tels scripts ont prouvé leur utilité dans l'automatisation de tâches fortement répétitives, comme le déploiement d'un grand nombre de PC avec des instructions d'installation identiques. Avec les versions successives, AutoIt s'est développé pour inclure des améliorations tant dans la conception du langage de programmation que dans les fonctionnalités générales.
Avec la sortie de la version 3, la syntaxe du langage de programmation a été restructurée pour se rapprocher des langages de la famille BASIC. C'est un langage de troisième génération (en) qui fait appel à un modèle de données classique, utilisant un type de données variable pouvant stocker plusieurs types de données, y compris des tableaux. Il est compatible avec Windows 95/98/ME/NT4/2000/XP/2003/Vista/7/8/8.1/10.
Cependant le support de certains systèmes d'exploitation a été arrêté en fonction des différentes versions d'AutoIt.
* 95/98/ME/NT4 ⇒ AutoIt v3.2.12.1
* 2000 ⇒ AutoIt v3.3.8.1
* XP (SP1 et SP2) - 2003 (SP1) ⇒ AutoIt v3.3.12.0
Un script peut être compilé en un exécutable compressé autonome, lequel peut alors être exécuté sur des ordinateurs dépourvus de l'interpréteur AutoIt. Un large choix de bibliothèques de fonctions (connues sous le nom d'UDF, ou encore "User Defined Functions" pour Fonctions Définies par l'Utilisateur) sont incluses en standard ou sont disponibles avec un IDE basé sur l'éditeur gratuit SciTE.

## Caractéristiques

* Langage de script, doté d'une structure similaire à celle du BASIC, fonctionnant dans un environnement Windows.
* Bibliothèques complémentaires et modules pour applications spécifiques.
* Support des protocoles TCP et UDP.
* Support des objets COM (Programmation orientée objet).
* Appels de fonctions dans les DLL Win32.
* Lancement des applications console et accès aux Flux standard.
* Inclusions de fichiers dans le script compilé, pour être extrait lors du lancement.
* GUI, création de message et de boites d'entrée.
* Lecture des sons, mise en pause, redémarrage, arrêt, déplacement, récupération de la position courante du son et de sa longueur.
* Simulation des mouvements de la souris.
* Manipulation des fenêtres et des processus.
* Automatisation de l'envoi de saisie utilisateur et de touches clavier aux applications, aussi bien que les commandes individuelles d'une application.
* Compilation des scripts en exécutable autonome.
* Support de l'Unicode depuis la version 3.2.4.0.
* Support du code 64 bit depuis la version 3.2.10.0.
* Support des expressions régulières.
* Fonctionne avec le Contrôle de Compte Utilisateur apparu depuis Windows Vista,.
* Conception orientée objet grâce à une bibliothèque.

## Utilisation

AutoIt est le plus souvent utilisé pour programmer des automatisations à but utilitaire pour Microsoft Windows. Des tâches communes, comme par exemple le contrôle de site Web, le contrôle de réseau, la défragmentation de disques et la sauvegarde, peuvent être automatisées et combinées. Il est aussi utilisé pour simuler des applications utilisateurs : dans ce cas, un script AutoIt pilotera une application en lieu et place d'un contrôle manuel. Compte tenu de la facilité de conception de tels programmes, AutoIt est souvent utilisé pour créer des bots pour des jeux en ligne ou des malwares : ce type d'utilisation n'est en aucune façon encouragée par les développeurs ou la communauté AutoIt. Du coup, il arrive malheureusement parfois que certains antivirus considèrent les scripts AutoIt comme des virus.
Enfin, AutoIt peut être utilisé pour créer des programmes totalement indépendants, comme par exemple Super Mario, GimageX, ISN AutoIt Studio, ...

## Historique simplifié

* Décembre 1997 - Idée d'un programme en C qui peut envoyer des touches clavier.
* Janvier 1999 - Première version de AutoIt (1.0).
* Août 1999 - AutoIt v2 et AutoItX.
* Septembre 1999 - Première version de AutoIt avec compilateur.
* Décembre 2002 - AutoIt v3 (Bêta publique).
* Février 2004 - AutoIt v3 (Version Stable).
* Septembre 2006 - Démarrage de Auto3Lib.
* Novembre 2007 - Sortie de AutoIt v3.2.10.0, Auto3Lib incorporé dans AutoIt v3
* Mai 2008 - Sortie de AutoIt v3.2.12.0, incorporation de fonctionnalités GUI.
* Décembre 2008 - Sortie de AutoIt (et AutoItX) v3.3.0.0.
* Décembre 2009 - Sortie de AutoIt v3.3.2.0.
* Janvier 2010 - Sortie de AutoIt v3.3.4.0.
* Mars 2010 - Sortie de AutoIt v3.3.6.0.
* Avril 2010 - Sortie de AutoIt v3.3.6.1.
* Décembre 2011 - Sortie de AutoIt v3.3.8.0.
* Décembre 2013 - Sortie de AutoIt v3.3.10.2.
* Juin 2014 - Sortie de AutoIt v3.3.12.0.
* Juillet 2015 - Sortie de AutoIt v3.3.14.1
* Septembre 2015 - Sortie de AutoIt v3.3.14.2
* Mars 2018 - Sortie de AutoIt v3.3.15.3
À l'origine, les développeurs d'AutoIt sortaient le code source sous licence GPL, mais cette pratique a été arrêtée avec la sortie de la version v3.2.0 en août 2006. Ceci laissa la branche du code v3.1 pour le projet AutoHotkey, et maintenant la communauté continue de développer le code sous licence GPL.

## Utilitaires principaux

* SciTE et SciTE4AutoIt.
À l'installation, une version légère de SciTE est mise en place, mais il vous est possible de rajouter SciTE4AutoIt qui est une version modifiée de SciTE avec une pléthore d'outils complémentaires. SciTE et SciTE4AutoIt permettent de créer des scripts plus facilement grâce, entre autres, à la coloration syntaxique, ainsi qu'à une aide à la saisie apportée par la complétion automatique. Des outils ont aussi été intégrés afin d'aider au maximum le développeur dans la création d'un projet.
* Koda
Koda fait partie intégrante de SciTE4AutoIt. Il est accessible depuis l'interface de ce dernier par la combinaison de touche ALT+M, mais il peut être lancé indépendamment de celui-ci. Koda permet la construction de l'interface graphique d'un script, en utilisant lui-même une interface graphique conviviale faisant appel à des objets manipulables à la souris.