2016-11-20 4 views
0

J'ai deux méthodes que j'utilise pour obtenir et comparer deux couleurs. Le premier est d'obtenir la couleurIfEqual toujours évaluer à False (AutoHotKeys)

/* 
This function returns the color at the given coordinates in hexadecimal format 
*/ 
GetColor(x, y) { 
    MouseMove x, y 
    PixelGetColor, colorToReturn, x, y 
    Return %colorToReturn% 
} 

Et voici mon chèque méthode couleur

/* 
This function checks the passed color with the color at 600, 475. 
*/ 
CheckColor(colorToCheck) { 
    colorToCompare := GetColor(600, 475) 
    MsgBox %colorToCheck% - %colorToCompare% 
    IfEqual %colorToCheck%, %colorToCompare%, Return, 1 
    Return 0 
} 

Je l'appelle avec ce raccourci clavier, mais je suis toujours 0 retour, même si les deux couleurs sont de la même couleur. Pourquoi ma couleur de vérification renvoie-t-elle toujours une valeur false? Non.

Répondre

2

https://autohotkey.com/docs/commands/IfEqual.htm

IfEqual, var, value

var - Le nom de la variable.

value - Chaîne littérale, nombre ou référence de variable (par exemple, % var2%).

Donc, si vous définissez sur l'utilisation de la commande IfEqual au lieu de if (expression) il devrait ressembler à ça:

IfEqual, colorToCheck, %colorToCompare%,Return 1 

if (expression) altrenative:

if (colorToCheck=colorToCompare) 
Return 1 
+0

Vous avez été plus rapide et plus précis (+1). – user3419297

+0

D'accord, accepté –

1

« IfEqual% colorToCheck%,% colorToCompare% , Retour, 1 "

doit être

IfEqual colorToCheck, %colorToCompare%, Return, 1 

noms de variables dans un expression ne sont pas enfermés dans des signes de pourcentage (à l'exception des pseudo-réseaux et autres références doubles).

Si un variable est enfermé dans des signes de pourcentage dans une expression (par exemple% Var%), quelle que soit cette variable contient est supposé être le nom ou le nom partiel d'une autre variable (s'il n'y a pas variable% Var % résout en une chaîne vide).

+0

Wow, j'aurais pu jurer d'avoir essayé, mais j'ai dû oublier de recharger le script. Merci! –

+0

Malheureusement, la réponse de Bob est plus précise, donc je dois le lui donner, mais je suis malade. –