[..] Plusieurs If de suite

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Kwhy
Niveau 4
Niveau 4
Messages : 54
Enregistré le : lun. 18 mars 2013 19:43
Status : Hors ligne

[..] Plusieurs If de suite

#1

Message par Kwhy »

Bonjour, j'ai un probléme à la suite de plus : If. Je voudrais faire :

Code : Tout sélectionner

Si la variable m1 est different de rien Alors
Ecrire m1
Appuyer sur entrer
Fin de si
Si la variable m2 est different de rien Alors
Ecrire m2
Appuyer sur entrer
Fin de si
.....
.....
J'ai fais :

Code : Tout sélectionner

For $a = 1 To GUICtrlRead($nbr) Step 1
      
      If Not $m1 = "" Then
         Send ($m1)
         Send ("{ENTER}")
      Else
      EndIf
      If Not $m2 = "" Then
         Send ($m2)
         Send ("{ENTER}")
      Else
     EndIf
      If Not $m3 = "" Then
         Send ($m3)
         Send ("{ENTER}")
       Else
      EndIf
      If Not $m4 = "" Then
         Send ($m4)
         Send ("{ENTER}")
       Else
      EndIf
      If Not $m5 = "" Then
         Send ($m5)
         Send ("{ENTER}")
       Else
      EndIf
      If Not $m6 = "" Then
         Send ($m6)
         Send ("{ENTER}")
       Else
     EndIf

Next
Le problème c'est si il y a que 3 variable sur 6 remplis par exemple , le script bugeras à la 4ém.
Un autre problème : si je remplis les variables m1,m2...,m6 il ne vont jamais s’arrêter à la variable $nbr (For $a = 1 To GUICtrlRead($nbr) Step 1)
Ça va faire comme un : While. :shock:

Merci d'avance 8)
Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 18:51
Localisation : France
Status : Hors ligne

Re: [..] Plusieurs If de suite

#2

Message par Sea »

Qu'es ce que $nbr?

De plus pourquoi ne pas définir t'es variables avant?

Code : Tout sélectionner

Global $m1 = false,$m2 = false,$m3 = false,$m4 = false,$m5 = false,$m6 = false

;Ta gui et ton code

For $a = 1 To GUICtrlRead($nbr) Step 1
      
      If $m1 Then
         Send ($m1)
         Send ("{ENTER}")
      EndIf

       If $m2 Then
         Send ($m2)
         Send ("{ENTER}")
     EndIf

      If $m3 Then
         Send ($m3)
         Send ("{ENTER}")
      EndIf

      If $m4 Then
         Send ($m4)
         Send ("{ENTER}")
      EndIf

      If $m5 Then
         Send ($m5)
         Send ("{ENTER}")
      EndIf

      If $m6 Then
         Send ($m6)
         Send ("{ENTER}")
     EndIf
Next

 
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Plusieurs If de suite

#3

Message par mikell »

Tu peux même profiter de l'occasion pour apprendre à te faire une fonction puisque ton test est répétitif

Code : Tout sélectionner

_test($m1)
_test($m2)
_test($m3)
; etc

Func _test($var)
 If $var<>"" Then
    Send ($var)
    Send ("{ENTER}")
 EndIf
EndFunc
Au fait qu'est-ce que la boucle For fait là-dedans ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Kwhy
Niveau 4
Niveau 4
Messages : 54
Enregistré le : lun. 18 mars 2013 19:43
Status : Hors ligne

Re: [..] Plusieurs If de suite

#4

Message par Kwhy »

Merci pour vos réponses, la boucle for et le $nbr permettent d'effectuer un certain nombre de fois les messages à envoyer

Je ne connais pas les fonctions :(

Merci

PS : J'ai essayer avec des global $m1 = false mais le probléme c'est que c'est l'utilisateur qui remplis la variable via :

Code : Tout sélectionner

Case $msg1
   $m1 = InputBox ("Message","Ecrire votre 1er message")
Kwhy
Niveau 4
Niveau 4
Messages : 54
Enregistré le : lun. 18 mars 2013 19:43
Status : Hors ligne

Re: [..] Plusieurs If de suite

#5

Message par Kwhy »

:( Toujours pas réussi :(
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Plusieurs If de suite

#6

Message par mikell »

Si on s'en tient au titre du sujet et à ton 1er post, les codes qu'on t'a donné marchent
Mais un script c'est pas juste un petit bout de code, et comme tu as donné peu d'infos on peut pas t'en dire plus...
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Kwhy
Niveau 4
Niveau 4
Messages : 54
Enregistré le : lun. 18 mars 2013 19:43
Status : Hors ligne

Re: [..] Plusieurs If de suite

#7

Message par Kwhy »

Voici mon code en entier sans la GUI

Code : Tout sélectionner

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
;========================================SCRIPT=====================
;================Messages===============
Case $msg1
   $m1 = InputBox ("Message","Ecrire votre 1er message")
Case $msg2
   $m2 = InputBox ("Message","Ecrire votre 2em message")
Case $msg3
   $m3 = InputBox ("Message","Ecrire votre 3em message")    
Case $msg4
   $m4 = InputBox ("Message","Ecrire votre 4em message")    
Case $msg5
   $m5 = InputBox ("Message","Ecrire votre 5em message")    
Case $msg6
   $m6 = InputBox ("Message","Ecrire votre 6em message")    
;=================================================Boutton GO2=====================================================
Case $go2
   MsgBox (64,"Infos","Vous avez 5secondes")
   Sleep (5000)
;===============Redimension===============
      WinMove ("","",0,0,800,600)
      MouseClick ("left",550,550)
      ;===Si message===
For $a = 1 To GUICtrlRead($nbr) Step 1
      
      If Not $m1 = "" Then
         Send ($m1)
         Send ("{ENTER}")
      Else
         MouseMove (550,500)
      EndIf
      If Not $m2 = "" Then
         Send ($m2)
         Send ("{ENTER}")
      Else
         MouseMove (550,500)
     EndIf
      If Not $m3 = "" Then
         Send ($m3)
         Send ("{ENTER}")
      Else
         MouseMove (550,500)
      EndIf
      If Not $m4 = "" Then
         Send ($m4)
         Send ("{ENTER}")
      Else
         MouseMove (550,500)
      EndIf
      If Not $m5 = "" Then
         Send ($m5)
         Send ("{ENTER}")
      Else
         MouseMove (550,500)
      EndIf
      If Not $m6 = "" Then
         Send ($m6)
         Send ("{ENTER}")
      Else
         MouseMove (550,500)
     EndIf

Next
    
    
    EndSwitch
WEnd
 
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Plusieurs If de suite

#8

Message par mikell »

C'est quoi $msg1, $msg2 etc et $nbr ?
Et pis d'abord il est censé faire quoi ce code ? parce que là comme ça c'est loin d'être évident ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Kwhy
Niveau 4
Niveau 4
Messages : 54
Enregistré le : lun. 18 mars 2013 19:43
Status : Hors ligne

Re: [..] Plusieurs If de suite

#9

Message par Kwhy »

$msg1 $msg2... sont des boutons

Code : Tout sélectionner

 $msg1 = GUICtrlCreateButton("Msg 1", 8, 40, 67, 33)
$msg2 = GUICtrlCreateButton("Msg 2", 88, 40, 67, 33)
$msg3 = GUICtrlCreateButton("Msg 3", 8, 80, 67, 33)
$msg4 = GUICtrlCreateButton("Msg 4", 88, 80, 67, 33)
$msg5 = GUICtrlCreateButton("Msg 5", 8, 120, 67, 33)
$msg6 = GUICtrlCreateButton("Msg 6", 88, 120, 67, 33)
$nbr est une variable créer par la commande GUICtrlCreateInput

Code : Tout sélectionner

$nbr = GUICtrlCreateInput("", 360, 40, 33, 21)
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

Re: [..] Plusieurs If de suite

#10

Message par parazitenew »

Comme dit mikell c'est pas évident de corriger un script si on sait pas à quoi il sert :P
Kwhy
Niveau 4
Niveau 4
Messages : 54
Enregistré le : lun. 18 mars 2013 19:43
Status : Hors ligne

Re: [..] Plusieurs If de suite

#11

Message par Kwhy »

Il sert a écrire des messages personnalisé par des variables dans une boîte de dialogue
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Plusieurs If de suite

#12

Message par mikell »

Bon et c'est quoi la boite de dialogue ?
Mets le script entier parce que là ça n'avance pas
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre