[R] Sortir d'une boucle pour aller a une autre

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
genaille08
Niveau 4
Niveau 4
Messages : 93
Enregistré le : sam. 03 mai 2008 01:27
Status : Hors ligne

[R] Sortir d'une boucle pour aller a une autre

#1

Message par genaille08 »

bonjour a tous

Alors voila ce que j'ai fait jusqu'à présent

Code : Tout sélectionner

While 1
    PixelSearch ( $left, $top, $right, $bottom, $color )
    if NOT @error Then
        sleep ( 2000 )
        send ( "{F4}" )
        Sleep ( 5000 )
        Send ( "{f3}" )
        Sleep ( 1000 )
        Send ( "{f4}" )
    EndIf
WEnd
Je suis encore en train d'expérimenter la détection de couleur
et je voulais vous demandez si vous pouviez m'aider a faire une autre fonction pour ce script
je voudrais que au bout d'un certain temps mon code sorte de cette boucle déjà crée et passe a une autre et ensuite si l'autre n'a pas d'erreur revenir a celle la.
Je doute que ce soit possible.
J'ai fait des recherche avec autoit help (F1) et sur le forum mais entre "for, to, step, next, while, wend, if, do, until ..." je n'en m'en sort plus.

Ensuite j'aurrais voulu avoir des précisions sur le fonction $*, je pense avoir compris que quand on met ça on crée une fonction qu'on attribut a *. Mais je n'en suis pas sur.

voila merci d'avance
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] sortir d'une boucle pour aller a une autre

#2

Message par Tlem »

Bonsoir.
Il y a plusieurs manières de faire certaines choses en fonction des besoins que l'on a.
Comme vous ne donnez pas trop de détails sur vos besoin, voici un exemple plutôt généraliste :

Code : Tout sélectionner

; Ceci est juste pour initialiser les valeurs de PixelSearch
Dim $left = 0, $top = 0, $right = 0, $bottom = 0, $color = 0

; On initialise $Res à 1 pour lancer la Boucle_1 en premier.
Dim $Res = 1
; Durée des fonctions.
Global $Duree = 5

; Touche echap pour quitter le script en cours.
HotKeySet("{ESC}", "Fin")

; Boucle infinie qui appelle une fonction définie par la valeur de retour $Res.
; Si $Res = 1 alors on appel Boucle_1()
; Si $Res = 2 alors on appel Boucle_2()
While 1
    $Res = Call("Boucle_" & $Res)
WEnd

; On crée une fonction Boucle_1().
Func Boucle_1()
    ; Initialisation d'un compteur.
    $Begin = TimerInit()
    ; Boucle infinie qui fait une action.
    While 1
        PixelSearch ( $left, $top, $right, $bottom, $color )
        if NOT @error Then
            sleep ( 2000 )
            send ( "{F4}" )
            Sleep ( 5000 )
            Send ( "{f3}" )
            Sleep ( 1000 )
            Send ( "{f4}" )
        EndIf
        ; Si on atteind la valeur de $Duree alors on sort de la boucle.
        If Int(TimerDiff($begin)/1000) > $Duree Then ExitLoop
    WEnd
    ; On retourne la valeur 2 pour pouvoir lancer la Boucle_2()
    Return 2
EndFunc

; On crée une fonction Boucle_2().
Func Boucle_2()
    $Begin = TimerInit()
    While 1
        PixelSearch ( $left, $top, $right, $bottom, $color )
        if NOT @error Then
            sleep ( 2000 )
            send ( "{F4}" )
            Sleep ( 5000 )
            Send ( "{f3}" )
            Sleep ( 1000 )
            Send ( "{f4}" )
        EndIf
        If Int(TimerDiff($begin)/1000) > $Duree Then ExitLoop
    WEnd
    Return 1
EndFunc

; Fonction de sortie du script.
Func Fin()
    Exit
EndFunc
genaille08 a écrit :Ensuite j'aurrais voulu avoir des précisions sur le fonction $*, je pense avoir compris que quand on met ça on crée une fonction qu'on attribut a *. Mais je n'en suis pas sur.
En fait, l'utilisation du symbole $ permet s'il est placé avant des lettres de déclarer une variable (Espace de stockage d'une information).
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é".
genaille08
Niveau 4
Niveau 4
Messages : 93
Enregistré le : sam. 03 mai 2008 01:27
Status : Hors ligne

Re: [..] sortir d'une boucle pour aller a une autre

#3

Message par genaille08 »

ok beh merci beaucoup tlem, j'ai eu ce que je voulais "return"
Répondre