Página 1 de 1

[Solucionado] - Error en SEARCHPIXEL

Publicado: 27 Sep 2015, 07:56
por diego
Hola tengo la versión 3.3.14.2 de Autoit.

Quisiera que me ayuden con un problema de interpretación.

tengo la siguiente linea de comando

Código: Seleccionar todo

$go = PixelSearch ( 371, 514, 375, 518, 0xD57708)
Como se puede apreciar, esta según la norma de la ayuda de autoit para pixelsearch que dice: "PixelSearch ( left, top, right, bottom, color)

El tema es que si lo ingreso así, no detecta el pixel.

Ahora si agrego un 1 antes de la variable COLOR, si lo detecta al pixel... Pero... Se queda realizando la accion del MOUSECLICK, incluso si cambio el color.

Código: Seleccionar todo

$go = PixelSearch ( 371, 514, 375, 518, 1, 0xD57708)
Por la dudas pongo el código completo para que vean en que falla.

Código: Seleccionar todo

While 1
        $go = PixelSearch ( 371, 514, 375, 518, 0xD57708);Coordenadas del pixel
        If IsArray($go) Then
            MouseClick("left", $go[0], $go[1])
            Sleep(2000)
        Else
            MsgBox(0, "No encuentra el pixel", "El pixel no esta en la zona señalada")
            Sleep(2000)
        EndIf
    WEnd
Lo que yo busco es que detecte el pixel señalado por mi y si esta en la pantalla, haga click en el mismo, sino que no haga nada.

Re: Error en SEARCHPIXEL

Publicado: 28 Sep 2015, 05:38
por Dany
Primero tienes que colocar el color luego la variacion.
PixelSearch ( 371, 514, 375, 518, 0xD57708 ,1)



Saludos

Re: Error en SEARCHPIXEL

Publicado: 28 Sep 2015, 18:26
por diego
Gracias dany, pero la consulta era: "Porque me detecta el pixel cuando pongo el 1 delante (osea convierto el COLOR en 1 y cuando pongo el COLOR correctamente, no ejecuta la accion".

Re: Error en SEARCHPIXEL

Publicado: 29 Sep 2015, 14:55
por diego
Pueden cerrar el post, ya lo resolvi. El problema estaba en el script que tomaba el color, tuve que usar el siguiente.

Código: Seleccionar todo

#include <MsgBoxConstants.au3>

HotKeySet("{ESC}", "_Terminate"); Tecla para cerrar el script rapidamente

Func _Terminate()
    Exit
EndFunc   ;==> Termina el Script

While 1
	MouseMove( 378, 461, 20); Mueve el Mouse a las Coordenadas del pixel
	Local $iColor = PixelGetColor( 378, 461); Posicion X, Y del pixel donde toma el color
	MsgBox($MB_SYSTEMMODAL, "", "The decimal color is: " & $iColor); Color en codigo decimal
	MsgBox($MB_SYSTEMMODAL, "", "The hex color is: " & Hex($iColor, 6)); Color en codigo Hexadecimal
WEnd