[R] Attendre fin installation pour contitnuer le scripte

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Utilisateur 3700 supprimé
Status : Hors ligne

[R] Attendre fin installation pour contitnuer le scripte

#1

Message par Utilisateur 3700 supprimé »

Bonjour

J'ai fait un scripte pour automatiser l'installation d'un logiciel et a la fin de l'installation il y a une fenêtre que je voudrez fermé

j'ai utilisé ceci

Code : Tout sélectionner


; installation en cours ...

While WinWaitActive("Installation de VLC media player 1.1.7")
    
    WinWaitActive("Installation de VLC media player 1.1.7")
    Send("{SPACE}")
    Send("{ENTER}")
    Sleep(100)
    
WEnd

; Fin de l'installation, fermeture de la fenêtre

 


l'inconvénient c'est que pendant l'installation Windows fait un bruit car il ne peut pas faire "ENTER" et que je ne trouve pas cette solution "propre"

Je cherche plutôt quelque chose qui ,une fois l'installation fini fermerais la fenêtre , une idée ?
Modifié en dernier par Utilisateur 3700 supprimé le mer. 04 mai 2011 15:40, modifié 1 fois.
protecta
Niveau 2
Niveau 2
Messages : 22
Enregistré le : sam. 27 nov. 2010 15:37
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#2

Message par protecta »

Salut, je ne suis pas un expert, mais je peux proposer une idée.
Pour l'installation, j'imagine que tu dois faire suivant ?
Et je pense aussi que tu connais le nombre de fois où le suivant doit être utilisé, donc tu fais avec un "compteur", donc remplace le while par un do.

Un exemple :

Code : Tout sélectionner

$compteur=0
Do
    WinWaitActive("Installation de VLC media player 1.1.7")
    Send("{SPACE}")
    Send("{ENTER}")
    Sleep(100)
    $compteur=$compteur+1
until $compteur=3 ; pour l'appui sur suivant 3 fois
Une fois sorti de la boucle, tu ajoutes un alt+F4 via la fonction send, pour quitter le programme d'installation.
Utilisateur 3700 supprimé
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#3

Message par Utilisateur 3700 supprimé »

Sa revient a la même chose car il faut faire "terminer" a la fin , donc la boucle s'exécutera pendent l'installation.

Y a il un moyen que si le bouton "terminer" appairer ,la commande Send("{ENTER}") s'exécute ?
protecta
Niveau 2
Niveau 2
Messages : 22
Enregistré le : sam. 27 nov. 2010 15:37
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#4

Message par protecta »

Peux-tu expliquer plus précisément le déroulement de l'installation stp ? Le terminer apparait bien à la fin ? Espace et entrer servent bien à faire suivant ? Je ne vois pas très bien où est le problème, donne moi des détails :wink: .
Utilisateur 3700 supprimé
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#5

Message par Utilisateur 3700 supprimé »

Le terminer est bien a la fin de l'installe ,je voudrais être sur que l'installe est fini pour effectuer alt+F4

Code : Tout sélectionner

Run("vlc.exe")
WinWaitActive("Installer Language")
Send("{ENTER}") ;choisi la lange par défaut français
WinWaitActive("Installation de VLC media player 1.1.7")
Send("{ENTER}") ;suivant
Send("{ENTER}") ;suivant
Send("{ENTER}") ;suivant
Send("{ENTER}") ;suivant



BlockInput(1)

;installe en cours

While WinWaitActive("Installation de VLC media player 1.1.7")
    
    WinWaitActive("Installation de VLC media player 1.1.7")
    Send("{SPACE}")
    Send("{ENTER}")
    Sleep(100)
    
WEnd

;fin de l'installe ,commande Send("{SPACE}") pour décocher ouvrir VLC , Send ("{ENTER}") pour terminer

BlockInput(0)


 
protecta
Niveau 2
Niveau 2
Messages : 22
Enregistré le : sam. 27 nov. 2010 15:37
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#6

Message par protecta »

Ah ok, je vois mieux. Bon alors là, je peux te proposer des trucs archaïques, en attendant une main plus experte ...

Si tu sais à peu près le temps que ça prend, si les machines ont une configuration similaire, tu fais un simple sleep durant l'installation ...

Ou alors tu recherches un pixel à la fin de la barre d'installation, lorsque le pixel change de couleur (donc quand c'est presque terminé, genre 98%). Pour ça, faut connaitre la position du pixel sur l'écran.

Mais bon, une installation de VLC, ça prend quand même pas 20 plombes. Tu mets un sleep de 180 000 (3 minutes), et après tu es certain que c'est terminé. Ca parait la méthode la plus simple.
Nilak
Niveau 4
Niveau 4
Messages : 57
Enregistré le : mar. 25 mai 2010 21:29
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#7

Message par Nilak »

Utilise controlclick()? En utilisant Autoitinfo pour récupérer l'id du bouton...


Après il me semble que tu peux boucler pour attendre que le bouton apparait en utilisant controlcommand avec l'option "IsEnabled"... Quand il vaut 1 tu utilises controlclick...^^
Utilisateur 3700 supprimé
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#8

Message par Utilisateur 3700 supprimé »

Ok je test tout sa demain
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#9

Message par Jerome »

Coucou,



Si j'ai bien compris le problème, c'est que tu windows te produit un bruit (beep) lorsque tu appuis sur ENTER dans ton script parce que ta fenêtre n'est pas active.


Pour moi il te suffit de l'activer avec la fonction WinActivate et Winactive pour test si c'est bon.




Jérôme
Utilisateur 3700 supprimé
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#10

Message par Utilisateur 3700 supprimé »

Nilak : l'ID du bouton et le même pendent l'installation et quand c'est fini , par contre le text change il passe de "&Suivant >" pendant l'instal à "&fermer" quand c'est fini

Je connais vraiment pas les boucle ,comment je peut faire sa avec controlcommand avec l'option "IsEnabled"... ?
SurPriseS
Niveau 6
Niveau 6
Messages : 293
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#11

Message par SurPriseS »

RunWait("vlc.exe /S")

Sa le fait bien aussi ;)
Nilak
Niveau 4
Niveau 4
Messages : 57
Enregistré le : mar. 25 mai 2010 21:29
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#12

Message par Nilak »

Voila le code:

Code : Tout sélectionner

 Do
    sleep(100)
Until(ControlCommand("Installation de","","[CLASS:Button; INSTANCE:2]","IsEnabled", ""))
ControlClick("Installation de","","[CLASS:Button; INSTANCE:2]")
Dés que le bouton est activé, le script va cliquer dessus. Par contre dans cette configuration, il lance aussi VLC a la fin de l'installation! Aprés il y a peut etre mieux je ne suis pas un expert! ^^

Puis si tu ne veux pas qu'il soit lancé à la fin:

Code : Tout sélectionner

 Do
    sleep(100)
Until(ControlCommand("Installation de","","[CLASS:Button; INSTANCE:2]","IsEnabled", ""))
ControlClick("Installation de","","[CLASS:Button; INSTANCE:4]")
ControlClick("Installation de","","[CLASS:Button; INSTANCE:2]")
Utilisateur 3700 supprimé
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#13

Message par Utilisateur 3700 supprimé »

Merci sa marche nikel

Peut tu m'expliquer un peut stp ,car je voudrais appliquer sa a d'autre scripte et la je suis larguer ^^
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#14

Message par legend »

il existe plusieurs moyens.
L'un des meilleurs est celui d'agir sur les controls.
autres solutions (plus manuelles) :
_imagesearch jusqu'a trouver l'image du bouton et après cliquer dessus.
faire des read sur la fenêtre qui te permettront peut être de trouver un indice sur la fin de l'install et après faire un winclose ou winkill.
bonne journée
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Attendre fin installation pour contitnuer le script

#15

Message par sksbir »

Bonjour

En ce qui me concerne, la meilleure solution pour automatiser une installation consiste à suivre les préconisations de l'éditeur, puis tenter les contournements proposés par des forums sérieux ( genre appdeploy ) pour rendre l'installateur silencieux, puis en dernier recours, repackager ou utiliser autoit pour "piloter" l'installation.

Pour vlc, il semblerait que l'installation se fasse automatiquement avec l'option /s

http://forum.videolan.org/viewtopic.php?f=14&t=61974
http://www.appdeploy.com/packages/detail.asp?id=303
Répondre