Page 1 sur 1
[R] Probleme de clic sur couleur
Posté : dim. 20 janv. 2008 15:51
par meit
Voila une personne ma fait un scripte qui clique sur des couleur mais il y a une erreur la voici :
Code : Tout sélectionner
MouseClickColor('left',$coord[0]+50,$coord[1]+30,1,1,"D5CFAA")
MouseClickColor('left',$coord^ ERROR
Error: Subscript used with non-Array variable.
Je ni comprend rien alors si quelqu'un pouvais m'aider se serai très généreux de sa part.
merci d'avance.
Re: probleme de scripte
Posté : dim. 20 janv. 2008 19:33
par eln
meit a écrit :Voila une personne ma fait un scripte qui clique sur des couleur mais il y a une erreur la voici :
Code : Tout sélectionner
MouseClickColor('left',$coord[0]+50,$coord[1]+30,1,1,"D5CFAA")
MouseClickColor('left',$coord^ ERROR
Error: Subscript used with non-Array variable.
Je ni comprend rien alors si quelqu'un pouvais m'aider se serai très généreux de sa part.
merci d'avance.
Bonjour
Je suis débutant dans AutoIt mais je pense que c'est un peu léger comme détails pour espérer une aide.
Re: probleme de scripte
Posté : dim. 20 janv. 2008 20:27
par sylvanie
cette erreur est un grand classique ...
$coord n'est pas un tableau lors de ton éxécution, du coups $coord[0] n'existe pas.
Il y a de grande chance que $coord provienne d'un pixelsearch qui est retourné en erreur et comme trops souvent, la close d'erreur n'a pas été testé, et on continue comme si tout c'étati bien passé, cf cet exple :
http://www.autoitscript.fr/forum/viewto ... ?f=3&t=400
Re: probleme de scripte
Posté : dim. 20 janv. 2008 21:41
par meit
je crois avoir trouver mais je se pas comment résoudre le problème alors je t'envois le morceau que j'ai test :
Code : Tout sélectionner
;~ fonction qui click sur le pixel recherché dans la zone spécifiée
func ClickPixel($x1,$y1,$x2,$y2,$pixel_rech)
$coord = PixelSearch($x1,$y1,$x2,$y2,"0x"& $pixel_rech)
if not @error then
MouseClick("left",$coord[0], $coord[1],1,1)
return $coord
endif
voila j'espère que vous m'aiderez. merci d'avance.
Re: [..] Probleme de clic sur couleur
Posté : dim. 20 janv. 2008 23:19
par sylvanie
c'est étonant car cette fonction est bien écrite.
Si le pixel n'est pas trouvé, alors on saute bien la partie où $coord[x] est utilisée
Par contre, on voit bien qu'elle retourne les coordonnées en cas de réussite, mais on ne vois pas ce qu'elle retourne en cas d'échec, ele est complète ?
Re: [..] Probleme de clic sur couleur
Posté : lun. 21 janv. 2008 04:26
par meit
oui je l'ai entiere il a pas plus ,tu peu me dire comment faire le scripte si echeque c'est petre sa je sais pas ^^. enfin si ta pas d idee biensur.
je vous remerci d'avance de m'aider sur se probleme.
Re: [..] Probleme de clic sur couleur
Posté : lun. 21 janv. 2008 20:16
par sylvanie
l'erreure a lieu dans l'execution de la fonction, pou après ?
car si on appelle cette fonction en stockant le retours avec:
$coord=ClickPixel(....)
et qu'on se sert de $coord dans la suite saans vérifier qu'elle n'est pas sortie en échec, ça peut venir de là
Re: [..] Probleme de clic sur couleur
Posté : lun. 21 janv. 2008 20:18
par codename44
salut
MouseClickColor('left',$coord[0]+50,$coord[1]+30,1,1,"D5CFAA")
il doit manquer le 0x devant la couleur
"0xD5CFAA"
Re: [..] Probleme de clic sur couleur
Posté : lun. 21 janv. 2008 20:24
par sylvanie
je sais pas, car si la fonction en question est construite comme ClickPixel; la concaténation du 0x se fait dans la fonction.
Le plus simple est de donner le code de MouseClickColor
Re: [..] Probleme de clic sur couleur
Posté : lun. 21 janv. 2008 23:20
par meit
l'erreur a lieu après l'exécution de la fonction.mais j'ai pas compris se que tu as expliquer après :
car si on appelle cette fonction en stockant le retours avec:
Code:
$coord=ClickPixel(....)
et qu'on se sert de $coord dans la suite sans vérifier qu'elle n'est pas sortie en échec, ça peut venir de là
Re: [..] Probleme de clic sur couleur
Posté : mar. 22 janv. 2008 19:32
par sylvanie
oui, effectivement
il y a deux façons pour contourner ceci :
1) faire un set de @error à1 en cas d'échec de la fonction et 0 sinon (donc compléter la fonction) :
Code : Tout sélectionner
func ClickPixel($x1,$y1,$x2,$y2,$pixel_rech)
$coord = PixelSearch($x1,$y1,$x2,$y2,"0x"& $pixel_rech)
if not @error then
MouseClick("left",$coord[0], $coord[1],1,1)
SetError(0)
return $coord
endif
SetError(1)
return 0
EndFunc
et après l'appel, il suffit de teste @error pour savoir si tout c'est bien passé
2) on ne touche pas la fonction, et on utilise la fonction Isarray($coord)
Ceci renvoie 1 si c'est un tableau (donc on peut l'utiliser) , 0 sinon (échec)
Re: [..] Probleme de clic sur couleur
Posté : mar. 22 janv. 2008 20:26
par meit
cool merci c'est sympa j'ai essayer la première solution est sa marche alors je me suis arête la merci encore si ta besoin de moi dans quelque année quand je serais a ton niveau dans autoit je pourrais te renvoyer l'ascenseur ^^.
merci a se lui qui a crée se forme et sur tout sylvanie qui ma beaucoup aidée . a dernière question comment on met que le problème est résolu ^^.
bon a bientôt .
Re: [R] Probleme de clic sur couleur
Posté : mar. 22 janv. 2008 21:14
par sylvanie
Il faut editer le prmeier message et changer [..] par [R] dans le titre du post.
Mais avec tant d'éloges je viens de le faire ^^
Re: [R] Probleme de clic sur couleur
Posté : mar. 22 janv. 2008 23:00
par meit
merci. mais c'est vrai tu es sympa en plus tu prend le temps expliquer c'est vraiment sympa de ta par,je ne connais pas beaucoup de personne qui le font.
bon je croyais que j'avais fini mais sur se logiciel il a beaucoup de question a poser encore .^^
bon je vais regarder les autre sujets pour voir si trouve des réponse a mes questions ^^++.