Page 1 sur 1
[..] Images identiques
Posté : dim. 17 nov. 2013 12:24
par nicolas30
Bonjour,
Jusqu'à présent je trouvais des reponses sur tout sans ce forum, et je repartai comme un voleur, mais voilà, je suis bloqué et je n'ai rien trouvé sur le forum, alors je crée ce topic
J'aimerais savoir si c'était possible, à partir d' _ImageSearch, ou de PixelSearch, (ou de quelquechose d'autre), de faire cliquer la souris sur une image qui apparait plusieurs fois à l'écran les une après les autres.
J'ai un début de code, mais le script bloque dès que plusieurs images identiques apparaissent en même temps:
► Afficher le texte
Code : Tout sélectionner
$fermer= _Imagesearch("images/fermer.bmp", 1, $positionX, $positionY, 0)
If $fermer=1 Then
MouseClick("left", $positionX, $positionY, 1, 0)
EndIf
Merci d'avance pour vos réponses

Re: [..] Images identiques
Posté : dim. 17 nov. 2013 12:46
par yohan8
C'est ton code en entier ?
Dans ce cas il manque l'appel à l'include "_ImageSearch" ainsi que la déclaration des variables "$positionX" et "$positionY".
Prend l’exemple de mikell ici:
http://www.autoitscript.fr/forum/downlo ... hp?id=3065
S'il fonctionne (déjà un grand pas) tu l'adaptes pour qu'il te convienne.
Re: [..] Images identiques
Posté : dim. 17 nov. 2013 13:17
par nicolas30
yohan8 a écrit :C'est ton code en entier ?
Dans ce cas il manque l'appel à l'include "_ImageSearch" ainsi que la déclaration des variables "$positionX" et "$positionY".
Prend l’exemple de mikell ici:
http://www.autoitscript.fr/forum/downlo ... hp?id=3065
S'il fonctionne (déjà un grand pas) tu l'adaptes pour qu'il te convienne.
Non, c'est pas le code entier ^^ juste la partie qui ne fonctionne pas, j'utilise _ImageSearch un peut avant, et ça marche, mais dès que la meme image est prése,te deux fois, tout s'arrete.
Re: [..] Images identiques
Posté : dim. 17 nov. 2013 13:38
par yohan8
Si "_ImageSearch" à déjà fonctionné plus haut et que c'est la même image, je ne vois pas pourquoi sa ne fonctionnerait pas.
Je soupçonne 2 sources d'erreur :
La fonction "_ImageSearch" s'effectue alors que l'image n'est pas encore présente. Dans ce cas une boucle est préférable :
Code : Tout sélectionner
While 1
$fermer= _Imagesearch("images/fermer.bmp", 1, $positionX, $positionY, 0)
If $fermer=1 Then
MouseClick("left", $positionX, $positionY, 1, 0)
ExitLoop
EndIf
WEnd
L'image n'est pas totalement identique; la souris survole l'image, pas la même résolution.. Essaye de jouer avec la tolérance.
Re: [..] Images identiques
Posté : dim. 17 nov. 2013 13:57
par nicolas30
yohan8 a écrit :Si "_ImageSearch" à déjà fonctionné plus haut et que c'est la même image, je ne vois pas pourquoi sa ne fonctionnerait pas.
Je soupçonne 2 sources d'erreur :
La fonction "_ImageSearch" s'effectue alors que l'image n'est pas encore présente. Dans ce cas une boucle est préférable :
Code : Tout sélectionner
While 1
$fermer= _Imagesearch("images/fermer.bmp", 1, $positionX, $positionY, 0)
If $fermer=1 Then
MouseClick("left", $positionX, $positionY, 1, 0)
ExitLoop
EndIf
WEnd
L'image n'est pas totalement identique; la souris survole l'image, pas la même résolution.. Essaye de jouer avec la tolérance.
Ce n'est pas la même image plus haut, et grâce a ton code la souris ferme la premiere fenetre, mais pas la suivante.
C'est assez étrange puisque les images ont strictement les mêmes...
Je vais essayer de faire une boucle par fenêtre a fermer, en prenant une image différente a chaque fois, au cas ou la résolution soit différente...
Re: [..] Images identiques
Posté : dim. 17 nov. 2013 14:11
par nicolas30
Problème résolu !
Merci beaucoup !
Voila mon code final :
► Afficher le texte
Code : Tout sélectionner
While 1
$fermer= _Imagesearch("images/fermer.bmp", 1, $positionX, $positionY, 0)
If $fermer=1 Then
MouseClick("left", $positionX, $positionY, 1, 0)
EndIf
Sleep(1000)
$fermer2= _Imagesearch("images/fermer2.bmp", 1, $positionX, $positionY, 0)
If $fermer2=1 Then
MouseClick("left", $positionX, $positionY, 1, 0)
EndIf
Sleep(1000)
While 1
$fermer3= _Imagesearch("images/fermer3.bmp", 1, $positionX, $positionY, 0)
If $fermer3=1 Then
MouseClick("left", $positionX, $positionY, 1, 0)
EndIf
WEnd