[R] Probleme de clic sur couleur

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
meit
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 20 janv. 2008 15:15
Status : Hors ligne

[R] Probleme de clic sur couleur

#1

Message 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.
Avatar du membre
eln
Niveau 6
Niveau 6
Messages : 202
Enregistré le : sam. 28 juil. 2007 12:54
Status : Hors ligne

Re: probleme de scripte

#2

Message 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.
Débutant, pas taper !
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: probleme de scripte

#3

Message 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
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
meit
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 20 janv. 2008 15:15
Status : Hors ligne

Re: probleme de scripte

#4

Message 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.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Probleme de clic sur couleur

#5

Message 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 ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
meit
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 20 janv. 2008 15:15
Status : Hors ligne

Re: [..] Probleme de clic sur couleur

#6

Message 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.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Probleme de clic sur couleur

#7

Message 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à
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
codename44
Niveau 4
Niveau 4
Messages : 65
Enregistré le : sam. 22 déc. 2007 15:46
Status : Hors ligne

Re: [..] Probleme de clic sur couleur

#8

Message par codename44 »

salut :D

MouseClickColor('left',$coord[0]+50,$coord[1]+30,1,1,"D5CFAA")

il doit manquer le 0x devant la couleur "0xD5CFAA"
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Probleme de clic sur couleur

#9

Message 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
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
meit
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 20 janv. 2008 15:15
Status : Hors ligne

Re: [..] Probleme de clic sur couleur

#10

Message 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à
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Probleme de clic sur couleur

#11

Message 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)
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
meit
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 20 janv. 2008 15:15
Status : Hors ligne

Re: [..] Probleme de clic sur couleur

#12

Message 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 .
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] Probleme de clic sur couleur

#13

Message 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 ^^
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
meit
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 20 janv. 2008 15:15
Status : Hors ligne

Re: [R] Probleme de clic sur couleur

#14

Message 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 ^^++.
Répondre