Page 1 sur 1
[...]Probléme à l'apparition d'une fenêtre
Posté : jeu. 18 juin 2009 09:00
par luffy43
Bonjour, j'ai un probléme pour l'automatisation d'un programme d'installation.Je m'explique , en fait il arrive qu'une fenêtre apparaise ou non selon si c'est la premiére fois ou non que l'on installe le programme.( cette fenêtre est ligne 36 ("Installation de Pilotage Budget Gescap 7.10","Informations sur votre société") ).
Donc comme vous pouvez le voir pour résoudre le probléme j'ai essayé avec une condition :
If WinExists("Installation de Pilotage Budget Gescap 7.10","Information sur l'installation") Then
send("!s")
Mais je ne comprends pas on dirais que le autoit fait l'impasse sur mon "Si" car il se bloque et se met en pause.
Voici le code complet :
► Afficher le texte
Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.0.0
Author: Jérémy Mathieu
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
;Code de licence
Opt("TrayIconDebug",1)
Run("C:\Mes Documents\DATA\Procédure Auto\Programmes\SAGE\budget")
WinWaitActive("BUDGET","Notez la clé")
send("({ENTER})")
WinWaitActive("Installation de Pilotage Budget Gescap 7.10","Bienvenue dans l'InstallShield Wizard de Sage Experts-Comptables Pilotage Budget Gescap 7.10.")
send("!s")
WinWaitActive("Installation de Pilotage Budget Gescap 7.10","Sélectionnez le type d'installation.")
send("{DOWN}")
send("{UP}")
send("({ENTER})")
WinWaitActive("Installation de Pilotage Budget Gescap 7.10","Installation monoposte")
send("!s")
WinWaitActive("Installation de Pilotage Budget Gescap 7.10","Identification")
send("FWJULW LKNY5P L7DN3W")
send("!s")
WinWaitActive("Installation de Pilotage Budget Gescap 7.10","Contrat de licence")
send("!o")
;WinWaitActive("Installation de Pilotage Budget Gescap 7.10","Information sur l'installation")
;send("!s")
;If WinExists("Installation de Pilotage Budget Gescap 7.10","Information sur l'installation") Then
;send("!s")
;EndIf
If WinExists("Installation de Pilotage Budget Gescap 7.10","Information sur l'installation") Then
send("!s")
EndIf
WinWaitActive("Installation de Pilotage Budget Gescap 7.10","Informations sur votre société")
send( '304700{TAB}' )
sleep(750)
Send ( 'es{DOWN}{TAB}' )
sleep(750)
Send ( 'SEGECO{TAB}' )
sleep(750)
Send ( '{TAB}12 avenue de Coubon{TAB}' )
sleep(750)
Send ( '{TAB}43700{TAB}' )
sleep(750)
Send ( 'BRIVES CHARENSAC{TAB}' )
sleep(750)
Send ( 'FRANCE{TAB}' )
sleep(750)
Send ( '0471053870{TAB}' )
sleep(750)
Send ( '0471028697{TAB}' )
sleep(750)
Send ( '58735027300039{TAB}' )
sleep(750)
Send ( '{TAB}m7{TAB}' )
sleep(750)
Send ( '05{DOWN}{DOWN}{TAB}' )
sleep(750)
send("!s")
WinWaitActive("Installation de Pilotage Budget Gescap 7.10","InstallShield Wizard terminé")
send("{ENTER}")
;pause
sleep(3000)
;Code annuel
run("C:\Program Files\Sage Gescap\BSuivi\V7\Gbs70.exe")
WinWaitActive("Bienvenue chez Sage - Saisie de votre code","Le nombre d'utilisation de votre progiciel est actuellement limité.")
send("{TAB}{TAB}{TAB}{ENTER}M8B5LQLR5W{ENTER}")
;WinWaitActive("Pilotage Budget Gescap - Code annuel d'utilisation")
;Send ( 'M8B5LQLR5W{ENTER}' )
WinWaitActive(" Budget + Suivi v7.10")
send("!{F4}")
send("{ENTER}")
Merci de votre aide.
Re: [...]Probléme à l'apparition d'une fenêtre
Posté : jeu. 18 juin 2009 15:00
par TaPuZ
Salut.
A priori, au moment où le script arrive sur le "if" de la ligne 36, la condition n'est pas remplie, et donc il va au winwait suivant, d'où la pause, si c'est une première installation.
Je vais te faire une réponse à côté de la plaque, pour ne pas changer mes habitudes.
J'ai eu eu le même souci que toi fut un temps pour une installation similaire. Et j'ai opté pour un truc plus long, mais qui m'a évité de devenir fou (j'avais surtout une deadline pour solutionner mon problème).
J'ai fait un test des le début du script, pour savoir si oui ou non, il y avait dejà eu une installation de faite (il suffit de vérifier l'existence d'un fichier pertinent).
Si oui, on met un flag à 1 et on traite la suite en fonction, sinon, on le met à 0. Là, tu fais un case à ta ligne 36.
Dans le cas ou flag=1, tu fais ton winwait intermédiaire, et sinon, tu continue le script.
Peut-être que ça pourrait être une première piste.
ou pas...
Re: [...]Probléme à l'apparition d'une fenêtre
Posté : ven. 19 juin 2009 13:48
par guitarist
Personnellement je pense que déja utiliser ShellExecute est mieu que Run c'etait juste pour dire ça
