Page 1 sur 1

[R] Automatisation logiciels et fonction Select Case

Posté : mer. 15 avr. 2015 15:17
par Quentin68
Bonjours,

je suis un débutant sous autoit. Je désire automatisé Adobe Reader.

Si il n'est pas installé, mon script installe Adobe
Si il est déjà installé avec une version antérieur, il installe la mise a jours

Mais je coince sur la condition d'installation avec la fonction Select Case EndSelect.

Code : Tout sélectionner

;Installation de Adobe Reader XI
ShellExecute("Adobe_Reader_XI")
Select
    ;Si Adobe n'est pas installé
    Case WinWaitActive("Installation pour Adobe Reader XI (11.0.10)", "Prêt pour l'installation Adobe Reader XI")
            Send ("{ENTER}")
            WinWaitActive("Adobe Reader XI (11.0.10) - Installation", "Des mises à jour de sécurité")
            Send ("{ENTER}")
            WinWaitActive("Installation pour Adobe Reader XI (11.0.10)", "Installation terminée")
            Send ("{ENTER}")
    ;Si Adobe est déjà installé, mais une version antérieur
    Case WinWaitActive("Correctif pour Adobe Reader XI (11.0.10)", "Bienvenue dans le correctif pour Adobe Reader XI")
            Send ("{ENTER}")
            WinWaitActive("Installation pour Adobe Reader XI (11.0.10)", "Installation terminée")
            Send ("{ENTER}")
EndSelect
 

Re: [..] Automatisation logiciels et fonction Select Case

Posté : jeu. 16 avr. 2015 20:38
par A2Energie
Bonjour,

As tu testé tes deux conditions :
essaye ca :

Code : Tout sélectionner

While 1
if WinWaitActive("Installation pour Adobe Reader XI (11.0.10)", "Prêt pour l'installation Adobe Reader XI") then
tooltip("Pas installé",10,10)
elseif WinWaitActive("Correctif pour Adobe Reader XI (11.0.10)", "Bienvenue dans le correctif pour Adobe Reader XI") then
tooltip("Installé",10,10)
else
tooltip("Autre",10,10)
endif
Wend
 

Re: [..] Automatisation logiciels et fonction Select Case

Posté : jeu. 16 avr. 2015 21:05
par Quentin68
Bonsoirs,

Oui j'ai tester mes deux conditions séparements, aucun soucis elle fonctionne parfaitement.

Je vais essayé sa, et me renseigné sur la fonction tooltip que tu utilises.

EDIT: Aucun infobulle ne s'affiche

Re: [..] Automatisation logiciels et fonction Select Case

Posté : jeu. 16 avr. 2015 21:49
par orax
Avec WinWaitActive le script attendait que la fenêtre "Installation pour..." soit active pour afficher l'infobulle. Puisque la fenêtre n'était pas trouvée le script attendait indéfiniment.

Code : Tout sélectionner

While 1
    If WinActive("Installation pour Adobe Reader XI (11.0.10)", "Prêt pour l'installation Adobe Reader XI") Then
        ToolTip("Pas installé", 10, 10)
    ElseIf WinActive("Correctif pour Adobe Reader XI (11.0.10)", "Bienvenue dans le correctif pour Adobe Reader XI") Then
        ToolTip("Installé", 10, 10)
    Else
        ToolTip("Autre", 10, 10)
    EndIf
    Sleep(1000)
WEnd
:idea: Pour automatiser une installation, l'idéal est de faire une installation silencieuse qui n'affichera aucune interface graphique.

Re: [..] Automatisation logiciels et fonction Select Case

Posté : jeu. 16 avr. 2015 22:03
par Quentin68
Je vais me renseigner sur les install silencieuse.

Par contre, je me demande quand même pourquoi ce script ne fonctionne pas, car les deux types d'installation (New ou MAJ) fonctionnes quand elles sont séparé.

Re: [..] Automatisation logiciels et fonction Select Case

Posté : jeu. 16 avr. 2015 22:15
par orax
La ligne...

Code : Tout sélectionner

Case WinWaitActive("Installation pour Adobe Reader XI (11.0.10)", "Prêt pour l'installation Adobe Reader XI")
met le script en pause tant que la fenêtre "Installation pour Adobe Reader XI (11.0.10)" n'est pas active. C'est-à-dire que, s'il y a déjà eu une installation, cette fenêtre ne sera jamais active donc le script attendra indéfiniment.

Tu peux aussi ajouter ces lignes au début du script pour voir dans la console de SciTE où « bloque » le script.

Code : Tout sélectionner

#AutoIt3Wrapper_Run_Debug_Mode=Y      ;(Y/N) Run Script with console debugging. Default=N
#AutoIt3Wrapper_Run_Debug=On          ;(On/Off) Switch debugging on/off

Re: [..] Automatisation logiciels et fonction Select Case

Posté : jeu. 16 avr. 2015 22:24
par Quentin68
Donc j'ai surement mal compris le principe des conditions,

ce que je voulais faire c'étais :

Si tu vois la fenêtre d'installation, alors tu fais ...
Si tu vois la fenêtre de correctif, alors tu fais ...

Re: [..] Automatisation logiciels et fonction Select Case

Posté : jeu. 16 avr. 2015 22:43
par orax
Il faut surtout remplacer WinWaitActive par WinActive dans le Select/Case. Un truc comme ça marcherait peut-être mieux.
► Afficher le texte

Re: [..] Automatisation logiciels et fonction Select Case

Posté : ven. 17 avr. 2015 12:49
par Quentin68
Bonjours,

Merci orax !

En rajoutant un sleep(40000) le temps que le programme décompresse les fichiez d'installation etc, puis avec WinActive, sa fonctionne parfaitement !

je met le sujet en résolue, et met le script fonctionnel a la fin pour les prochains dans la situation =)

Code : Tout sélectionner

;Installation de Adobe Reader XI
ShellExecute("Adobe_Reader_XI")

sleep(40000)

Select
    ;Si Adobe n'est pas installé
    Case WinActive("Installation pour Adobe Reader XI (11.0.10)", "Prêt pour l'installation Adobe Reader XI")
            Send ("{ENTER}")
            WinWaitActive("Adobe Reader XI (11.0.10) - Installation", "Des mises à jour de sécurité")
            Send ("{ENTER}")
            WinWaitActive("Installation pour Adobe Reader XI (11.0.10)", "Installation terminée")
            Send ("{ENTER}")
            
;   ;Si Adobe est déjà installé, mais une version antérieur
    Case WinActive("Correctif pour Adobe Reader XI (11.0.10)", "Bienvenue dans le correctif pour Adobe Reader XI")
            Send ("{ENTER}")
            WinWaitActive("Installation pour Adobe Reader XI (11.0.10)", "Installation terminée")
            Send ("{ENTER}")
EndSelect
 

Re: [R] Automatisation logiciels et fonction Select Case

Posté : ven. 17 avr. 2015 22:21
par A2Energie
Esaaye de remplacer le sleep(40000)
Qui est pas tres beau, et pourrait poser probleme en cas de lag du pc.
par un winwait("[class:]","",60)

Code : Tout sélectionner

WinWait("[CLASS:AcrobatSDIWindow]", "",60)
 
Si je ne fais pas d'erreur car pas possible de tester.