Page 1 sur 2

[R] 2 Boucles en même temps

Posté : mer. 07 oct. 2009 12:58
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

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

Posté : mer. 07 oct. 2009 13:01
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é

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

Posté : mer. 07 oct. 2009 13:33
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

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

Posté : mer. 07 oct. 2009 16:38
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

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

Posté : mer. 07 oct. 2009 16:46
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

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

Posté : mer. 07 oct. 2009 17:13
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

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

Posté : mer. 07 oct. 2009 17:23
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

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

Posté : mer. 07 oct. 2009 17:59
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 !

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

Posté : ven. 09 oct. 2009 18:48
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é !

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

Posté : sam. 10 oct. 2009 17:52
par orax
Vous pourriez mettre une des deux boucle dans une fonction et utiliser AdlibEnable().

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

Posté : dim. 11 oct. 2009 22:01
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

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

Posté : lun. 12 oct. 2009 17:38
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

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

Posté : lun. 12 oct. 2009 22:13
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 ;)

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

Posté : mar. 13 oct. 2009 08:17
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é !

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

Posté : mar. 13 oct. 2009 09:00
par Habibsbib
Waah ! c'est super long ! et, il y'aurait pas un moyen avec _AdvlibEnable ??

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

Posté : mar. 13 oct. 2009 12:35
par DJSIR
Habibsbib a écrit :_AdvlibEnable
[horssujet]Tu commence à m'énerver avec tes Advlib ![/horssujet]

Je sort ! :arrow:

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

Posté : mar. 13 oct. 2009 15:40
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

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

Posté : mar. 13 oct. 2009 17:11
par periaz
C'est normal que c'est long, je lui demande de clicker a 40 endroits différents ^^

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

Posté : jeu. 15 oct. 2009 08:58
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 !!

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

Posté : jeu. 15 oct. 2009 10:41
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