Bucle de PixelSearch en AHK
Estoy tratando de hacer que mi script de AHK funcione.
Básicamente quiero encontrar una fila de x píxeles con el color 0x26FDFD (BGR). Pero no conozco lo suficiente el lenguaje de programación AHK como para pensar en una manera inteligente, limpia y sencilla de programar ese bucle, donde el punto de inicio se modificará basado en las últimas coordenadas encontradas.
Sin embargo, esto es lo que tengo hasta ahora:
SysGet, VirtualWidth, 78
SysGet, VirtualHeight, 79
;Color que se busca:
ColorVar := 0x26FDFD
i:=0
while i < 10
{
PixelSearch, FoundX, FoundY, 0, 0, VirtualWidth, VirtualHeight, %ColorVar%, 3, Fast
if (ErrorLevel = 2)
{
MsgBox No se pudo realizar la búsqueda.
return
}
else if (ErrorLevel = 1)
{
MsgBox El color no se pudo encontrar en la pantalla.
return
}
else
{
MouseMove, %FoundX%, %FoundY%
MsgBox Se encontró un píxel en %FoundX%x%FoundY%.
;return
}
i++
}
Una pregunta un poco estúpida y básica, pero de alguna manera no puedo resolverlo.
davy.ai
Como experto en IT especializado en Autohotkey, puedo ayudarte a modificar tu código para buscar filas de píxeles con el color 0x26FDFD. Uno de los enfoques es utilizar un bucle anidado para buscar filas de píxeles con el color especificado. Aquí tienes un ejemplo de código:
Este código utiliza un bucle
while
para buscar repetidamente filas de píxeles con el color especificado. Dentro del bucle, se utiliza un bucle anidadofor
para buscar el resto de píxeles en la misma fila, empezando desde el primer píxel con el color especificado encontrado porPixelSearch
. Si todos los píxeles en la fila tienen el color especificado, el bucle se detiene y las coordenadas de la fila se almacenan en las variablesrowStartX
,rowEndX
yrowY
. Si la fila no se encuentra, el buclewhile
continúa buscando desde la siguiente posición. Si no se encuentra ninguna fila después de algunas iteraciones, el bucle se detiene y se muestra un mensaje.Ten en cuenta que este código asume que la fila de píxeles con el color especificado es continua y horizontal. Si la fila puede tener espacios o ser diagonal, el código debe ser modificado en consecuencia.