Page 1 sur 1

Boucle qui ne fonctionne pas

Posté : dim. 29 janv. 2017 17:40
par joce
Bonsoir à tous,

Suite de mon petit projet: j'ai donc quelques logiciels dont je souhaite automatiser l'installation.
J'ai les scripts pour l'automatisation et j'ai la solution pour les lancer.
Maintenant je souhaite lancer cette installation en fonction de cas à cocher.
Voici un bout de mon script:
While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $GUI_EVENT_CLOSE, $Button2
         Exit
;Lancement de l'installation en fonction des cases cochées
      Case $Button1
         If GUICtrlRead($Checkbox5, $GUI_CHECKED) Then
            Run(@ScriptDir & '\AutoIt3.exe ".\Scripts\Teamviewer.au3" ')
         EndIf
      Case $Button1
         If GUICtrlRead($Checkbox6, $GUI_CHECKED) Then
            Run(@ScriptDir & '\AutoIt3.exe ".\Scripts\UltraVnc.au3" ')
         EndIf
Si je ne coche qu'une des deux cases, l'installation des deux logiciels est quand même lancée.

Qu'ai-je oublié ?

Merci pour votre aide.
Joce

Re: Boucle qui ne fonctionne pas  

Posté : dim. 29 janv. 2017 19:18
par mikell
Erreur de syntaxe Image
If GUICtrlRead($Checkbox5) = $GUI_CHECKED Then
Mais il faut tout regrouper sous le "Case $Button1"
Suggestion : potasser les scripts d'exemple du fichier d'aide et du forum :mrgreen:

Re: Boucle qui ne fonctionne pas

Posté : dim. 29 janv. 2017 19:24
par joce
Oups ! Merci !
Sinon, oui oui je m'y mets mais d'un autre côté j'ai une petit urgence à créer ce programme alors...
En tout cas, encore merci ;-)

Re: Boucle qui ne fonctionne pas

Posté : lun. 30 janv. 2017 17:02
par joce
Bon et bien j'ai beau essayer de trouver...je n'y arrive pas.
J'ai tout mis sous le "Case $Button1" mais maintenant tout se lance en même temps. Il doit y avoir un moyen de les lancer les uns après les autres...
Case $Button1
         If GUICtrlRead($Checkbox5) = $GUI_CHECKED Then
            Run(@ScriptDir & '\AutoIt3.exe ".\Scripts\Teamviewer.au3" ')
         EndIf
     
         If GUICtrlRead($Checkbox6) = $GUI_CHECKED Then
            Run(@ScriptDir & '\AutoIt3.exe ".\Scripts\UltraVnc.au3" ')
         EndIf
Je pense qu'il y a un autre moyen que de calculer le temps d'installation et mettre un "Sleep" entre chaque If...End mais lequel ?
Merci pour votre aide

Re: Boucle qui ne fonctionne pas

Posté : lun. 30 janv. 2017 17:40
par mikell
Il faut te débrouiller pour que tes scripts d'installation ne se ferment que quand l'installation est complète, par exemple en utilisant dedans un ShellExecuteWait (ou autre méthode...)
Ensuite ces scripts tu les lances avec RunWait au lieu de Run

Re: Boucle qui ne fonctionne pas

Posté : lun. 30 janv. 2017 18:12
par joce
Parfait. Je vais me plonger dans ces commandes.
Je te remercie.