[R] Probable erreur de syntaxe sur un bout de code

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Oppenheimer
Niveau 1
Niveau 1
Messages : 9
Enregistré le : jeu. 29 janv. 2015 16:20
Status : Hors ligne

[R] Probable erreur de syntaxe sur un bout de code

#1

Message par Oppenheimer »

Bonjour,

Ayant besoin de créer "un ou plusieurs" (voir plus bas) script d'installation silencieuse en prévision du déploiement de plusieurs postes, je me suis récemment mis en tête d'en apprendre plus sur AutoIt.

L'idée finale serait de lancer une routine qui me permet d'installer X logiciels à la suite de façon autonome et silencieuse.
Afin de me familiariser avec l'outil, j'ai d'ores et déjà codé le script suivant afin de procéder à une installation de TeamViewer10.
Le bout de code suivant suscite cependant plusieurs questions :

* Ceci est une installation "automatisée" mais non pas "silencieuse" (absence de menus). AutoIt gère t-il ce type d'installation ou dois-je me contenter d'une automatisation (bien pratique) de ces installations ?
* Puis-je mettre deux scripts de ce type bout à bout afin que les installations logicielles se suivent ou bien est-il par exemple plus judicieux de dissocier les scripts d'installation et de faire créer en parallèle un batch qui va dire "Une fois tel script terminé, lance celui-la", etc.
* Lors de l'exécution du bout de code suivant, l'installation se déroule bien mais il semblerait que mon premier Else, MsgBox, EndIf créé une erreur. En effet, l'idée était que SI il y a un problème, il m'affiche l'infobulle et que si tout se passe bien (ce qui est le cas) il n'affiche rien. En l'état, même si l'installation se déroule bien, le script va générer la fenêtre informant l'utilisateur qu'une erreur s'est produite.

Le bout de code en question :

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------

 AutoIt Version : 3.3.12.0
 Auteur:         Oppenheimer

 Fonction du Script :
    Installation silencieuse de TeamViewer.

#ce ----------------------------------------------------------------------------

; Affiche en bas à droite un message informant du début de l'installation.
Traytip("Installation de 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 10","Bienvenue chez TeamViewer")

; Si la fenêtre d'installation est active alors
If WinActive("Installation de TeamViewer","Bienvenue chez TeamViewer") Then
    ; Met en subrillance la case "personnellement / non commercialement"
    Send("{TAB 4}")
    ; Pause de 1 seconde
    Sleep(1000)
    ; Coche la case "personnellement / non commercialement"
    Send("{SPACE}")
    ; Pause de 1 seconde
    Sleep(1000)
    ; Valide et passe au menu suivant
    Send("{ENTER}")
Else
    MsgBox(0,"Erreur","Problème lors de l'exécution du script !")
EndIf

; Le script attend que la fenêtre principale de TeamViewer soit active
WinWaitActive("TeamViewer","")

; Si la fenêtre principale de TeamViewer est active alors
If WinActive("TeamViewer","") Then
    ; Affiche en bas à droite un message informant que l'installation est terminée
    TrayTip("Installation de TeamViewer","Fin de l'installation de TeamViewer",1000)
    ; Pause de 3 secondes
    Sleep(3000)
Else
    MsgBox(0,"Erreur","Problème lors de l'exécution du script !")
EndIf




Je présume que ma syntaxe est donc erronée mais je n'arrive pas à me corriger. A côté de quoi est-ce que je passe ?

Par avance, merci de votre aide :)
Modifié en dernier par Oppenheimer le jeu. 29 janv. 2015 22:28, modifié 1 fois.
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] Probable erreur de syntaxe sur un bout de code

#2

Message par Y01 »

Bonjour,

Sur ce lien, il est écrit comment réaliser une installation silencieuse de TeamViewer.

Sinon, le message d'erreur apparait forcement puisque la boucle SI tourne tout le temps.

Dès que la fenêtre disparait, le SI ne la trouve plus donc fait poper le message d'erreur, il suffit de sortir de la boucle après avoir fini les actions.
Y01
Oppenheimer
Niveau 1
Niveau 1
Messages : 9
Enregistré le : jeu. 29 janv. 2015 16:20
Status : Hors ligne

Re: [..] Probable erreur de syntaxe sur un bout de code

#3

Message par Oppenheimer »

Un grand merci pour le lien, etant donné que je suis aussi sur MDT en ce moment, ça m'intéresse également. D'une manière générale, lancer un .exe avec la bonne command line permet de rendre l'install silencieuse, j'en convient.

Dans le cas de ce script, ça sous entend que je dois éditer la command line du Teamviewer de mon package afin d'y intégrer le /S je présume.

Navré pour mon inexpérience vis à vis d'AutoIt du coup mais... comment sortir de la boucle ?
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Probable erreur de syntaxe sur un bout de code

#4

Message par blacksoul305 »

Bonsoir,

je vais me permettre quelques remarques par rapport au code histoire que tu puisses un peu mieux le peaufiner j'espère.

Premièrement, il est totalement DÉCONSEILLÉ de créer un script d'automatisation à force de MouseClick, de Send et autres commandes de ce style ne nécessitant pas d'objet sur lequel interagir, pour la simple et bonne raison que si un pop-up apparaît, que si l'ordinateur a un coup de mou, tout le script s'exécutera en décalé et ne sera donc pas efficace.
Ces méthodes sont parfois les seules utilisables quand les contrôles sont de type flash et que l'on ne peut récupérer le handle des contrôles à manipuler.

Ainsi je te conseille vivement de retravailler ton script tout en étudiant la documentation de ces rubriques :
  • Controls management
  • Windows management
Privilégie un handle d'une fenêtre plutôt qu'un titre (à condition que le handle ne change pas), privilégie aussi l'handle d'un élément plutôt que sa classe ou son contenu.

Pour trouver ces informations, utilise l'outil Control Viewer qui est normalement installé avec SciTE.

Quant à ton erreur, je serai toi je changerai les MsgBox, soit leur titre, soit leur contenu pour qu'elles soient différenciées. Car à mon avis, si l'installation se passe correctement, c'est que la première condition est vérifiée mais pas la dernière, ce qui pourrait venir d'un titre pas complet de la dernière fenêtre.

EDIT : Bien sûr, autre avantage qu'il y a de procéder avec les fonctions que je t'ai demandé d'étudier, outre le fait que le script sera beaucoup plus propre, c'est aussi que tu peux installer plusieurs logiciels en même temps. En effet, les actions seront exécutées même si les fenêtres ne sont pas au premier plan, mais tant qu'elles sont accessibles.

Bon courage !
Étudiant en 2ème année de Licence Informatique.
Oppenheimer
Niveau 1
Niveau 1
Messages : 9
Enregistré le : jeu. 29 janv. 2015 16:20
Status : Hors ligne

Re: [..] Probable erreur de syntaxe sur un bout de code

#5

Message par Oppenheimer »

Merci pour ces informations précieuses !

J'avais d'autres questions mais ça ne serait pas en adéquation avec le post originel, je vais donc mettre celui-ci en "résolu" et en créer un autre :)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Probable erreur de syntaxe sur un bout de code

#6

Message par Tlem »

Bonjour.
Pour du déploiement en masse il existe peut être quelque chose qui vous ravira :
http://dev.tranquil.it/wiki/WAPT_-_apt-get_pour_Windows

Envoyé de mon appareil mobile avec Tapatalk.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre