[R] Problème timout avec winwaitactivate

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
sirus
Niveau 3
Niveau 3
Messages : 40
Enregistré le : ven. 25 nov. 2011 09:34
Localisation : 78
Status : Hors ligne

[R] Problème timout avec winwaitactivate

#1

Message par sirus »

Bonjour,

Je suis débutant sous autoit, j'ai fais un script pour l’installation de 3Dviacomposer (pour ceux qui connaissent).

Toute l’installation ce passe bien sauf au moment ou il une fenêtre s'ouvre pour le choix de la licence.

Mon soucis est que cette fenêtre n'apparait que pour la première installation, je voulais donc mettre une temporisation sur l'attente de cette fenêtre afin de ne pas bloquer dessus lors de réinstallations future.

Voici ce que j'ai fait:

Code : Tout sélectionner

WinWaitActive ("3DVIA Composer - Protection", "", 2000)
Sleep(200)
ControlClick("3DVIA Composer - Protection", "", 15147)
Sleep(200)
Send("nom_du_serveur_de_ licence")
sleep(200)
Send("{ENTER}")
Pour la première installation ça fonctionne bien, j'en ai déduis que le problème venait de la tempo.

Pouvez vous m'aider?
Si vous avez besoin du code de toute l’installation, il y a pas de soucis.

merci par avance
Modifié en dernier par sirus le ven. 25 nov. 2011 12:38, modifié 1 fois.
HeaTon
Niveau 1
Niveau 1
Messages : 7
Enregistré le : mer. 16 nov. 2011 14:07
Status : Hors ligne

Re: [..] problème timout avec winwaitactivate

#2

Message par HeaTon »

sirus a écrit :Toute l’installation ce passe bien sauf au moment ou il une fenêtre s'ouvre pour le choix de la licence.

Mon soucis est que cette fenêtre n'apparait que pour la première installation, je voulais donc mettre une temporisation sur l'attente de cette fenêtre afin de ne pas bloquer dessus lors de réinstallations future.

Pour la première installation ça fonctionne bien, j'en ai déduis que le problème venait de la tempo.
Je ne suis pas sur d'avoir tout compris mais si cette fenêtre n'apparait que lors de la première installation il est nécessaire de faire une condition à l'exécution de ton bloc d'instruction sinon il attend une fenêtre active qui n'apparaitra jamais lors des autres installations.

Le code de toute l'installation peux m'intéresser histoire que je comprenne un peu mieux ce que tu demande. Merci.

Ps : A savoir que pour réaliser une installation silencieuse le mieux serait de créer un fichier ISS. Ce que je trouve plus adapté dans ton cas. --> ici <--
sirus
Niveau 3
Niveau 3
Messages : 40
Enregistré le : ven. 25 nov. 2011 09:34
Localisation : 78
Status : Hors ligne

Re: [..] problème timout avec winwaitactivate

#3

Message par sirus »

Merci pour ta réponse rapide
Je ne cherche pas forcément une installation silencieuse, vu que je préfère pouvoir suivre le cours de l'installation.

Le timeout de la commande winwaitactivate ne permet il pas de passer à la commande suivant en cas d'absence de la fenêtre attendue?
Pour le fichier ISS je vais regardé mais je n'y connais rien et 'ai déjà fait plusieurs script pour les applications qui précèdent l'installation de 3Dvia.

Voici mon code complet:

Code : Tout sélectionner

Run ("3DviaComposerFullV6R2011\source\32b\3DVIAComposerFullV6R2011.exe")
WinClose("ATGM")

FileDelete("D:\Documents and Settings\All Users\Menu Démarrer\Programmes\Démarrage\Raccourci vers 8-3DviaComposer.*")

WinWait ("3DVIA Composer V6R2011 Setup")
Sleep(200)
ControlClick("3DVIA Composer V6R2011 Setup", "&Next >", 785)

WinWait ("3DVIA Composer V6R2011 Setup", "Destination Folder")
Sleep(200)
ControlClick("3DVIA Composer V6R2011 Setup", "&Next >", 785)

WinWait ("3DVIA Composer V6R2011 Setup", "Select Features")
Sleep(200)
ControlClick("3DVIA Composer V6R2011 Setup", "&Next >", 785)

WinWait ("3DVIA Composer V6R2011 Setup", "Select Features")
Sleep(200)
ControlClick("3DVIA Composer V6R2011 Setup", "French", 1268)
Sleep(200)
ControlClick("3DVIA Composer V6R2011 Setup", "&Next >", 785)

WinWait ("3DVIA Composer V6R2011 Setup", "Ready to Install the Application")
Sleep(200)
ControlClick("3DVIA Composer V6R2011 Setup", "&Next >", 783)

Winwait("CATIA V5 importer for 3DVIA Composer V6R2011")

WinActivate("3DVIA Composer V6R2011 Setup", "Click the Finish button to exit this installation.")
sleep (540000)

WinWaitActive ("3DVIA Composer - Protection", "", 2000)
Sleep(200)
ControlClick("3DVIA Composer - Protection", "", 15147)
Sleep(200)
Send("25203@uranie.cn.tasfr.thales")
sleep(200)
Send("{ENTER}")

Run ("taskmgr")
WinWaitActive("Gestionnaire des tâches de Windows")
ControlClick("Gestionnaire des tâches de Windows", "F&in de tâche", 1050 )
WinClose("Gestionnaire des tâches de Windows")

WinActivate("3DVIA Composer V6R2011 Setup", "Click the Finish button to exit this installation.")
sleep(200)
ControlClick("3DVIA Composer V6R2011 Setup", "&Finish", 779)

FileCopy("ATGM3.0.*", "D:\Documents and Settings\All Users\Bureau")

 
Merci
HeaTon
Niveau 1
Niveau 1
Messages : 7
Enregistré le : mer. 16 nov. 2011 14:07
Status : Hors ligne

Re: [..] problème timout avec winwaitactivate

#4

Message par HeaTon »

sirus a écrit :Le timeout de la commande winwaitactivate ne permet il pas de passer à la commande suivant en cas d'absence de la fenêtre attendue?
Dès lors que la valeur du timeout est dépassée. Description de la fonction. Or vous avez mis cette valeur à 2000 ce qui signifie que la fonction attend l'ouverture de la fenêtre pendant 2000 secondes soit 33 minutes (plus ou moins). J'imagine que vous arrêtez l'exécution du script avant, croyant que celui ci n'a pas fonctionné.

J'ai noté quelques petites choses dans le bout de code que je pourrais améliorer. Je me penche dessus dès que j'ai 2 minutes.
sirus a écrit :Pour le fichier ISS je vais regardé mais je n'y connais rien et 'ai déjà fait plusieurs script pour les applications qui précèdent l'installation de 3Dvia.
En gros le principe c'est que tu faits une première installation en mode graphique en enregistrant les réponses que tu donnes aux différentes questions. L'ensemble est mis dans un fichier .iss que tu peux ensuite réutiliser pour réaliser une installation sans répondre à aucun question. L'exécutable ira chercher toutes les réponses qu'il a besoin dans le fichier.
Modifié en dernier par HeaTon le ven. 25 nov. 2011 11:02, modifié 2 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Problème timout avec winwaitactivate

#5

Message par Tlem »

Ceci devrait convenir :

Code : Tout sélectionner

$3DVIAProtection = WinWaitActive ("3DVIA Composer - Protection", "", 5) ; on attend 5 secondes

; Si la fenêtre précédente à été trouvée, alors on exécute le code ci-dessous
If $3DVIAProtection <> 0 Then
    ControlClick("3DVIA Composer - Protection", "", 15147)
    Sleep(200)
    Send("nom_du_serveur_de_ licence")
    sleep(200)
    Send("{ENTER}")
EndIf

; Sinon on arrive ici.
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é".
sirus
Niveau 3
Niveau 3
Messages : 40
Enregistré le : ven. 25 nov. 2011 09:34
Localisation : 78
Status : Hors ligne

Re: [R] Problème timout avec winwaitactivate

#6

Message par sirus »

Désolé pour ma réponse tardive mais mon script ne fonctionnait pas bien.
J'ai fais quelques modifications et tout semble ok.

Par contre j'ai un peu regardé pour les fichiers ISS (ce qui pourrait être top pour ce que je fais), mais je ne comprend absolument pas comment les créer).

Merci pour votre aide
HeaTon
Niveau 1
Niveau 1
Messages : 7
Enregistré le : mer. 16 nov. 2011 14:07
Status : Hors ligne

Re: [R] Problème timout avec winwaitactivate

#7

Message par HeaTon »

sirus a écrit :Par contre j'ai un peu regardé pour les fichiers ISS mais je ne comprend absolument pas comment les créer).
Vu que c'est un forum consacré à AutoIt je ne vais pas m'étaler dans ce post mais je t'envoie une procédure par mp pour voir si les fichiers iss pourrait être utile dans ton cas.
Répondre