AutoIt – Automatiser une installation

AutoIt en quelques mots est un langage de script freeware destiné au départ à automatiser des tâches répétitives sous Windows mais qui depuis la version 3 a élargi son champ d’action. Si vous souhaitez découvrir toutes les caractéristiques rendez-vous sur Wikipédia.

En suivant ce tutoriel vous apprendrez à automatiser une installation sous Windows (version 2000 à Seven) il vous suffira de copier le code que je vais vous décrire et découvrir les principes de base de AutoIt. Pour les personnes qui souhaitent élargir leurs connaissances sur AutoIt je leur conseille vivement le tutoriel sur le siteduzero.com c’est comme ça que j’ai débuté ainsi que les conseils de la communauté autoitscript.fr.

Je vous ai présenté le logiciel TeamViewer dans cet article. TeamViewer permet de contrôler très simplement un ordinateur à distance. Même si son utilisation n’est pas d’une très grande difficulté des novices en informatique auront souvent du mal à être guidés pour l’installer. Nous allons donc automatiser l’installation de ce logiciel.

  • Téléchargez ensuite TeamViewer sur le site officiel www.teamviewer.com. Vous avez le fichier TeamViewer_Setup_fr.exe placez le dans un nouveau répertoire que vous allez appeler TeamViewer Autoinstall.
  • Dans ce même répertoire faites un clic droit puis dans le menu contextuel positionnez vous sur Nouveau puis clic gauche sur AutoIt v3 Script :

  • Donnez un nom à votre fichier :

  • Faites un clic droit sur votre fichier puis un clic gauche sur Edit Script :

  • SciTE Script Editor l’éditeur de code de la suite AutoIt s’ouvre avec quelques lignes qui apparaissent déjà dans votre script. Ces lignes sont facultatives mais permettent d’avoir rapidement connaissance de la version de AutoIt utilisée pour coder le script (AutoIt Version) ainsi que le nom de l’auteur (Author) et à quoi est destiné le script (Script Function) :

  • La ligne 11 est un commentaire que vous devez modifier. Ils sont là pour vous aider à vous organiser dans l’élaboration de votre script. Cette ligne ne sera pas exécutée dans le programme dès lors qu’elle commence par un point virgule (idem pour #cs et #ce vus plus haut qui évitent de mettre des ; au début de chaque ligne si on a plusieurs lignes de commentaires à écrire). Remplaçez ; Script Start – Add your code below here par ; Affiche en bas à droite un message informant du début de l’installation.
  • Comme le résume cette ligne de commentaire on va afficher en bas à droite de l’écran un message (une infobulle) informant du début de l’installation. Positionnez vous sur la ligne suivant le commentaire donc la ligne 12 et commencez à taper le mot Traytip une aide à la saisie apparaît sous la forme d’une liste :

  • Une fois que Traytip est saisi ouvrez une parenthèse, il apparaît cette fois une aide à la syntaxe :

  • Tapez la ligne ci-dessous qui signifie afficher une infobulle avec comme titre « Installation TeamViewer » et comme texte « Début de l’installation de TeamViewer » pendant 1 seconde :

  • Si vous souhaitez plus d’informations sur la commande utilisée positionnez votre curseur de la souris sur la commande (vous devez avoir le curseur qui clignote entre n’importe quel caractère de votre commande) puis appuyer sur la touche F1 de votre clavier. La documentation s’ouvre dans une nouvelle fenêtre et directement sur la commande recherchée :

  • Ajoutez maintenant la commande sleep qui permet de mettre en pause un certain temps votre programme :

  • Testez votre script en appuyant simplement sur la touche F5 de votre clavier. Votre infobulle apparaît en bas à droite de votre écran :

  • Ajoutez la ligne de commande ShellExecute permettant l’exécution d’un programme externe. Le programme externe à exécutez est TeamViewer_Setup_fr.exe que vous avez placé au début dans le même répertoire que votre script :

  • A ce stade de l’installation de TeamViewer vous avez la fenêtre suivante :

  • Vous n’allez pas tout de suite demander au programme de valider le bouton Suivant pour continuer l’installation. En effet selon la puissance des PC certains seront plus longs à arriver sur cette fenêtre donc si le programme demande à passer à la suite de l’installation alors que la fenêtre n’est pas présente l’automatisation de l’installation sera un échec. On va donc utiliser la commande WinWaitActive permettant d’attendre l’activation de la fenêtre souhaitée avant de poursuivre l’exécution du script. Pour cibler la fenêtre on utilise son titre et une partie de son texte on va utiliser « Installation de TeamViewer 7 » en titre et « Bienvenue chez TeamViewer » en texte :

  • Ajoutez maintenant la condition Si (commande If) suivi de la commande WinActive avec le titre et le texte précédent afin que le programme vérifie si la fenêtre d’installation est présente et si elle l’est Alors (commande Then) déclenche les actions des lignes suivantes c’est à dire ici l’exécution de la ligne 26 : Send (« {ENTER} ») qui va simuler l’appuie de la touche « Entrée » du clavier Sinon (commande Else)  afficher la boite de dialogue (commande MsgBox) dont le titre est « Problème !!! ». On ferme la condition par un Fin Si (commande EndIf) :

  • Notre programme en est maintenant à l’étape ou on doit sélectionner si on utilise TeamViewer personnellement / non commercialement, utilisation professionnelle / par une sociétéles deux. Vous devez donc sélectionner le premier choix. On pourrait utiliser les coordonnées du curseur de la souris avec l’outil AutoIt Windows Info intégré dans la suite AutoIt mais c’est déconseillé car selon la taille de l’écran ou le script sera exécuté il se peut que ces coordonnées ne coïncident pas. On va donc encore une fois utiliser les touches du clavier.

  • Appuyer sur la touche « Espace » de votre clavier. On constate que le choix personnellement / non commercialement est sélectionné. Il suffit donc ensuite d’appuyer sur la touche « Entrée » pour passer à l’étape suivante.

  • Transposez cela dans votre script en reprenant les contrôles de présence de la fenêtre affichée comme ci-dessous :

  • Si vous exécutez le script avec Windows 7, le contrôle de compte d’utilisateur (UAC) va perturber le bon fonctionnement de votre script. Il existe des moyens de contourner le problème. Le premier est de désactiver le contrôle cependant cette méthode est contraire à la sécurité du système. Le second moyen a été évoqué sur autoitscript.fr.  Pour ne pas compliquer ce tutoriel nous opterons pour le premier moyen et dans un prochain tutoriel nous verrons avec le second moyen.
  • Reprenons notre installation normalement le script vous amène à cette étape :

  • Pour accéder avec les touches du clavier aux différents choix il faut utiliser la touche « Tabulation » du clavier et la touche « Espace » pour cocher les choix proposés. Vous allez transposez cela dans votre script comme ci-dessous :

  • Étape suivante : vous devez sélectionner si la connexion à distance est juste ponctuelle ou si dans le futur vous souhaitez vous reconnecter sans nécessité de redemander l’ID et le mot de passe à la personne :

  • Ici vous allez choisir la 1ère option pour ne pas compliquer ce premier tutoriel sur AutoIt ce qui en transposant dans notre script donne :

  • On termine le script avec une infobulle informant que l’installation de TeamViewer est terminée :

  • L’installation de TeamViewer est terminée la fenêtre ci-dessous doit être présente avec l’ID et le mot de passe a communiquer pour pouvoir contrôler à distance le PC :

  • Vous allez compiler votre script en .exe afin qu’il soit exécutable depuis n’importe quel PC sous Windows 2000 à Seven. Rendez-vous dans le répertoire TeamViewer Autoinstall contenant vos 2 fichiers TeamViewer_Setup_fr.exe et TeamViewer Autoinstall.au3 puis faites un clic droit sur TeamViewer Autoinstall.au3 puis un clic gauche sur Compile Script :

  • Vous avez maintenant votre fichier TeamViewer Autoinstall.exe déplacez TeamViewer Autoinstall.au3 dans vos documents pour conserver le script et le modifier ultérieurement puis compressez le répertoire TeamViewer Autoinstall. Vous n’avez plus qu’à envoyer votre fichier compressé à la personne dont vous souhaitez contrôler le PC avec comme instruction :

1) Télécharger le fichier compressé

2) Décompresser le fichier compressé téléchargé

3) Ouvrir le répertoire TeamViewer Autoinstall

4) Lancer le fichier TeamViewer Autoinstall.exe

5) Communiquer l’ID et le Mot de passe

  • Certaines commandes utilisées dans le script sont facultatives je les ai intégré pour expliquer par exemple la condition SI ou la boite de dialogue. Voici le script simplifié ci-dessous :

#cs —————————————————————————-

AutoIt Version: 3.3.8.1
Author:         Jean-Christophe DAS NEVES

Script Function:
Installation automatisée de TeamViewer.

#ce —————————————————————————-

; Affiche en bas à droite un message informant du début de l’installation
TrayTip(« Installation TeamViewer », »Début de l’installation de TeamViewer », 1000)

; Pause de 3 secondes
Sleep(3000)

; Lance le programme d’installation
ShellExecute(« TeamViewer_Setup_fr.exe »)

; Le programme attend que la fenêtre d’installation soit active
WinWaitActive(« Installation de TeamViewer 7 », « Bienvenue chez TeamViewer »)

; Valide en appuyant sur la touche Entrée du clavier
Send (« {ENTER} »)

; Le programme attend que la fenêtre Domaine d’application soit active
WinWaitActive(« Installation de TeamViewer 7 », « Domaine d’application »)

; Sélection du choix personnellement / non commercialement
Send (« {SPACE} »)
; Valide en appuyant sur la touche Entrée du clavier
Send (« {ENTER} »)

; Le programme attend que la fenêtre Contrat de licence soit active
WinWaitActive(« Installation de TeamViewer 7 », « Contrat de licence »)

; Déplacement vers le choix J’accepte les termes de la licence
Send (« {TAB} »)
; Sélection du choix J’accepte les termes de la licence
Send (« {SPACE} »)
; Déplacement vers le choix Je confirme utiliser TeamViewer…
Send (« {TAB} »)
; Sélection du choix Je confirme utiliser TeamViewer…
Send (« {SPACE} »)
; Valide en appuyant sur la touche Entrée du clavier
Send (« {ENTER} »)

; Le programme attend que la fenêtre Définir le type d’installation soit active
WinWaitActive(« Installation de TeamViewer 7 », « Définir le type d’installation »)

; Valide en appuyant sur la touche Entrée du clavier
Send (« {ENTER} »)

; Le programme attend que la fenêtre principale de TeamViewer soit active
WinWaitActive(« TeamViewer », «  »)

; Affiche en bas à droite un message informant que l’installation est terminée
TrayTip(« Installation TeamViewer », »Fin de l’installation de TeamViewer », 1000)
; Pause de 3 secondes
Sleep(3000)

Vous savez maintenant comment automatiser une installation avec AutoIt. Je vous recommande encore vivement le tutoriel sur le siteduzero.com et les conseils de la communauté autoitscript.fr afin d’approfondir vos connaissances sur AutoIt.

Cliquez ici pour télécharger les scripts ainsi que les fichiers exécutables.

Tutoriel réalisé avec AutoIt version 3 et TeamViewer version 7 le 25 Février 2012