[R] 2 Boucles en même temps

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

[R] 2 Boucles en même temps

#1

Message par periaz »

Bonjour,
J'aurais besoin de votre aide afin de faire tourner deux boucles en même temps.

Je voudrais qu'une boucle se charge de faire naviguer ma souris et que l'autre cherche un pixel en particulier. Lorsque le pixel est trouvé, la boucle de la souris se met en pause, laisse le temps de cliquer sur le pixel, et se remet en marche.

J'ai déjà fait ceci comme code :

Code : Tout sélectionner

HotKeySet("{F9}", "debut")
HotKeySet("{F10}", "fin")
HotKeySet("{ESC}", "Sortie")
AdlibEnable("_boucle2",100)

$i=0
$y=1



    
    
While 1
If $i = 1 Then
$color="0xFCFCFC"
$coord=PixelSearch(120, 90, 900, 700,$color)
If not @error Then
MouseClick("left", $coord[0] - 6, $coord[1] - 6)
$y=0
EndIf
EndIf
WEnd



Func _boucle2()
If $y = 1 Then
MouseClick("left", 770, 695)
sleep(5000)
EndIf
If $y = 1 Then
MouseClick("left", 840, 690)
sleep(5000)
EndIF
EndFunc

Func fin()
   $i=0
EndFunc

Func debut()
    $i=1
EndFunc

Func Sortie()
    Exit
EndFunc
Je sais qu'il y a un problème quand je met

Code : Tout sélectionner

$y=0
mais après je ne sais pas comment faire pour que ça recommence la boucle de recherche de pixel 4 ou 5 fois et que ça remette ensuite

Code : Tout sélectionner

$y=1
et que la tout reparte comme avant : souris qui navigue et recherche de pixel en continue.


Merci
Modifié en dernier par periaz le lun. 12 oct. 2009 17:38, modifié 1 fois.
guitarist
Niveau 6
Niveau 6
Messages : 235
Enregistré le : mar. 02 déc. 2008 16:59
Status : Hors ligne

Re: [..] 2 Boucles en même temps

#2

Message par guitarist »

Apres un petit tour rapide de ton script pourqoi ne pas rajouter

Code : Tout sélectionner

$y+=1
Peut-etre que je ne compren pas ta question (c'est meme tres probable^^)
J'espere t'avoir ete d'une utilité
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

Re: [..] 2 Boucles en même temps

#3

Message par periaz »

Je vais te répondre alors pour l'utilité de ce script ^^

Code : Tout sélectionner

HotKeySet("{F9}", "debut")
HotKeySet("{F10}", "fin")
HotKeySet("{ESC}", "Sortie")
AdlibEnable("_boucle2",100)

$i=0
$y=1   
   
While 1
If $i = 1 Then
$color="0xFCFCFC"
$coord=PixelSearch(120, 90, 900, 700,$color)
If not @error Then
MouseClick("left", $coord[0] - 6, $coord[1] - 6)
$y=0
EndIf
EndIf
WEnd

Func _boucle2()
If $y = 1 Then
MouseClick("left", 770, 695)
sleep(5000)
EndIf
If $y = 1 Then
MouseClick("left", 840, 690)
sleep(5000)
EndIF
EndFunc

Func fin()
   $i=0
EndFunc

Func debut()
    $i=1
EndFunc

Func Sortie()
    Exit
EndFunc
Le script de la recherche de pixel se lance lorsque j'appuie sur F9. Je veux que la boucle 1 (celle qui cherche le pixel) fonction en même temps que la boucle 2 (celle qui fait naviguer ma souris).
Mais lorsque le pixel recherché est trouvé, la boucle 2 se met en pause, la recherche pixel recommence une deuxième fois afin de bien cilcké dessus puis après 5 petites secondes, la boucles 2 reprenne son activité tout en laissant la boucle 1 fonctionne simultanément.
C'est pour cela que j'ai placé $=1 ou 0, pour arrêter la boucle 2 mais apparemment, ça ne marche pas.

Merci de votre réponse
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

Re: [..] 2 Boucles en même temps

#4

Message par periaz »

Bonjour,
J'ai voulu tenté une autre solution mais j'ai un autre problème.

Code : Tout sélectionner

HotKeySet("{F9}", "debut")
HotKeySet("{F10}", "fin")
HotKeySet("{ESC}", "Sortie")

$i=0
$color="0xFDFDF7"
$coloor="0x5353D2"

    
While 1
If $i = 1 Then
$cord=PixelSearch(120, 90, 900, 700, $color)
If not @error Then
MouseClick("left", 502, 261)
EndIf
EndIf
If $i = 1 Then
$cord=PixelSearch(120, 90, 900, 700, $color)
If not @error Then
$coord=PixelSearch($cord[0] - 50, $cord[1] - 50, $cord[0] + 50, $cord[1] + 50, $coloor)
$axex=$coord[0] - 6
$axey=$coord[1] - 6
EndIf
EndIf
If $i = 1 Then
MouseClick("left", $axex, $axey)
EndIf
WEnd


Func fin()
   $i=0
EndFunc

Func debut()
    $i=1
EndFunc

Func Sortie()
    Exit
EndFunc

J'ai une erreur à ce niveau : MouseClick("left", $axex, $axey)
Je ne comprend pas, il n'y a pas d'erreur dans les variables, j'ai essayé avec d'autres types de variables et ça ne fonctionne pas.

A votre avis, le problème vient d'où ?
Merci
Avatar du membre
pop45
Membre émérite
Membre émérite
Messages : 251
Enregistré le : dim. 30 août 2009 16:18
Status : Hors ligne

Re: [..] 2 Boucles en même temps

#5

Message par pop45 »

Tu voudrais que la boucle 2 sarrette des qu'elle a cliquer 2 fois?
Après de endif tu rajoute
$y=0 et le tour est jouer
Cordialement Pop45
Veuillez agrée nos sentiment les plus distinguer, soyez assurer de mon entièr et amical collaboration, bien a vous pour toujours et a jamais dans l'unique but de servir l'espérance de votre satisfaction.
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

Re: [..] 2 Boucles en même temps

#6

Message par periaz »

Non ce n'est plus cela mon problème, c'est le dernier message :wink:
Merci quand même de ta réponse
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] 2 Boucles en même temps

#7

Message par orax »

Il y a des chances qu'il vous dise qu'elles ne sont pas déclarées. Mettez ça après le PixelSearch :

Code : Tout sélectionner

$coord = PixelSearch($cord[0] - 50, $cord[1] - 50, $cord[0] + 50, $cord[1] + 50, $coloor)
If Not @error Then
    $axex = $coord[0] - 6
    $axey = $coord[1] - 6
    MouseClick("left", $axex, $axey)
EndIf
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

Re: [..] 2 Boucles en même temps

#8

Message par periaz »

Super ca marche parfaitement !

Je ne met pas encore résolu au cas ou j'aurais juste un petit problème.

Merci encore !
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

Re: [..] 2 Boucles en même temps

#9

Message par periaz »

Bonjour,
Je reviens vous voir car j'ai encore un problème.
Je vous présente les codes :
► Afficher le texte
► Afficher le texte

J'ai donc essayé de mettre ces deux script en un, mais je n'y arrive pas. J'ai essayé plusieurs solution comme AdlibEnable et d'autres.

Même avec deux scripts différents, ca ne me satisfait pas car le script 1 est prioritaire par rapport au 2, c'est à dire que j'aimerais que quand la souris bouge avec le script 2, le script 1 ne dise pas le contraire et m'envoie la souris a l'opposé.

Ces deux scripts en un serait surement plus facile à gérer mais je ne sais le faire et pourtant j'ai cherché !
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] 2 Boucles en même temps

#10

Message par orax »

Vous pourriez mettre une des deux boucle dans une fonction et utiliser AdlibEnable().
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

Re: [..] 2 Boucles en même temps

#11

Message par periaz »

Bonsoir,
J'ai essayé beaucoup de situations, mais je ne trouve pas ce que je veux.

J'aimerais que mon script click à certains endroits, mais lorsqu'il trouve un pixel, il mette en pause la boucle 1, relance 4 ou 5 série de recherches de pixel, puis relance la boucle 1.

J'ai déjà ca :
► Afficher le texte
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

Re: [..] 2 Boucles en même temps

#12

Message par periaz »

J'ai trouvé d'une façon différente pour réaliser mon projet !
Merci pour votre aide, je met le petit [R]

A bientôt
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [R] 2 Boucles en même temps

#13

Message par sylvanie »

Pourriez vous expliquer votre méthode afin de complèter ce post, pour ceux qui auraient la même problèmatique ?
Merci pour eux ;)
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

Re: [R] 2 Boucles en même temps

#14

Message par periaz »

Ah oui excusez moi !

Je cherchais a l'orginie a clicker sur un pixel en particulier, et qu'une fois qu'il est trouvé ma boucle 1 ce mette en pause.

J'ai fait une autre manip un peu plus bricolée.
J'ai mis deux boucle qui cherche le pixel et une fois les pixel trouvé j'utilise mouseclick en réglant la vitesse du pointeur au max.
► Afficher le texte
Merci encore pour ceux qui m'ont aidé !
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [R] 2 Boucles en même temps

#15

Message par Habibsbib »

Waah ! c'est super long ! et, il y'aurait pas un moyen avec _AdvlibEnable ??
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: [R] 2 Boucles en même temps

#16

Message par DJSIR »

Habibsbib a écrit :_AdvlibEnable
[horssujet]Tu commence à m'énerver avec tes Advlib ![/horssujet]

Je sort ! :arrow:
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [R] 2 Boucles en même temps

#17

Message par Habibsbib »

Pourquoi hors sujet ? Il n'a qua faire deux fonctions :

Code : Tout sélectionner

AdlibEnable Boucle 1()
Func Boucle 1
While

WEnd
EndFunc

;- Boucle 2 :
While
;-blabla
WEnd
Modifié en dernier par Tlem le mar. 13 oct. 2009 20:23, modifié 1 fois.
Raison : Suppression balise Autoit (réservée à d'autres forum)
periaz
Niveau 4
Niveau 4
Messages : 89
Enregistré le : sam. 25 avr. 2009 11:52
Status : Hors ligne

Re: [R] 2 Boucles en même temps

#18

Message par periaz »

C'est normal que c'est long, je lui demande de clicker a 40 endroits différents ^^
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [R] 2 Boucles en même temps

#19

Message par Habibsbib »

Lol ^^ d'accord, je viens de piger le truc ! et d'ailleurs DJSIR, tu noteras qu'il c'est déja servi de la fonction AdvlibEnable dans son programme !!
Avatar du membre
GELDROC
Niveau 6
Niveau 6
Messages : 295
Enregistré le : sam. 10 oct. 2009 10:15
Status : Hors ligne

Re: [R] 2 Boucles en même temps

#20

Message par GELDROC »

une petite question je lavai déjà utiliser cette solution qui marche très bien mais

je voudrait savoir sil était possible d'en faire fonctionner 3 sens que cela soit tros lours

pour ma machine déjà très ancienne
Répondre