Hola
Alguien me puede ayudar con el uso de esta libreria ?? como puedo saber la coordmode pixel y screen para añadir a WaitPixelColor(x,x,x) ??
Muchas Gracias
#Include C:\Users\Daenerys\Desktop\WaitPixelColor.ahk
z::
Run, "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
CoordMode, Pixel, Screen
WaitPixelColor()
Sleep 1000
Run, "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
Ayuda Libreria WaitPixelColor Topic is solved
Moderator: Flipeador
Re: Ayuda Libreria WaitPixelColor
Hola Daenerys,
Suerte!
Por ejemplo:Alguien me puede ayudar con el uso de esta libreria ??
Code: Select all
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
#SingleInstance, force
CoordMode, Pixel, Screen
; ---------------------- variables: modificales a tu eleccion ----------------------
colorQueBuscar := "0xFF0000" ; rojo en R(ed)G(reen)B(blue) prueba con este color picker por ejemplo: https://duckduckgo.com/?q=color+picker+%23ff0000&ia=answer
modo := "RGB"
x := 467
y := 256
tiempoQueEsperarEnSegundos := 4
; ----------------------------------------------------------
return
!z:: ; ALT+Z
valor := WaitPixelColor(colorQueBuscar, x, y, tiempoQueEsperarEnSegundos*1000, modo)
if (valor = 0) ; si el color ha sido encontrado antes de que se agote el tiempo la funcion devuelve 0
MsgBox, color encontrada
else if (valor = 1) ; si surgió un problema
MsgBox, surgió un problema
else if (valor = 2) ; si se ha agotado el tiempo la funcionn devuelve dos
MsgBox, el color no ha sido encontrado - especialmente: se ha agotado el tiempo
return
WaitPixelColor(p_DesiredColor,p_PosX,p_PosY,p_TimeOut=0,p_GetMode="",p_ReturnColor=0) {
l_Start := A_TickCount
Loop {
PixelGetColor, l_OutputColor, %p_PosX%, %p_PosY%, %p_GetMode%
If ( ErrorLevel )
Return ( p_ReturnColor ? l_OutputColor : 1 )
If ( l_OutputColor = p_DesiredColor )
Return ( p_ReturnColor ? l_OutputColor : 0 )
If ( p_TimeOut ) && ( A_TickCount - l_Start >= p_TimeOut )
Return ( p_ReturnColor ? l_OutputColor : 2 )
}
}
; https://github.com/MasterFocus/AutoHotkey/blob/master/Functions/WaitPixelColor/WaitPixelColor.ahk
Re: Ayuda Libreria WaitPixelColor
Muchas Gracias por tu ayuda A_AhkUser
Me ha servido para entender mejor el funcionamiento de la libreria y para seguir adelante con mi formación en todo esto.
Dejo este pequeño script para saber posicion y color del puntero en sistema por defecto (no RGB)
MouseGetPos, x , y
PixelGetColor, OutputVar, %x%, %y%
MsgBox %OutputVar%, %x%, %y%
Me ha servido para entender mejor el funcionamiento de la libreria y para seguir adelante con mi formación en todo esto.
Dejo este pequeño script para saber posicion y color del puntero en sistema por defecto (no RGB)
MouseGetPos, x , y
PixelGetColor, OutputVar, %x%, %y%
MsgBox %OutputVar%, %x%, %y%
Re: Ayuda Libreria WaitPixelColor
Puedes facilmente anadir la funcionalidad de tu script en la funcion si quieres.
Primero, modificando los parametros p_PosX y p_PosY de WaitPixelColor de tal manera que tengan una valor por defecto - lo que permite no especificarles a la llamada de la funcion - y por ejemplo aqui una "cadena de caracteres vacia":
Asi, solo necessita despues comprobar en el cuerpo de la definicion de la funcion WaitPixelColor si x y y han sido especificados al la llamada de la funcion:
Y si usarPuntero vale true, llamamos MouseGetPos y utilizamos sus valores en el loop para compensar la falta de los dos parametros:
Finalmente, una otra cosita a pesar de todo importante es de modificar el CoordMode del raton para que concuerda que lo del Pixel - para ese propósito podemos utilzar A_CoordModePixel:
Lo mismo script con esta foncionalidad; tirara un MsgBox tan pronto como encontre el color si el raton lo esta sobrevolando (y antes de que se haya agotado el tiempo):
Primero, modificando los parametros p_PosX y p_PosY de WaitPixelColor de tal manera que tengan una valor por defecto - lo que permite no especificarles a la llamada de la funcion - y por ejemplo aqui una "cadena de caracteres vacia":
Code: Select all
WaitPixelColor(p_DesiredColor,p_PosX="",p_PosY="",p_TimeOut=0,p_GetMode="",p_ReturnColor=0) { ; definicion de la funcion
; ...
}
WaitPixelColor(colorQueBuscar,,, tiempoQueEsperarEnSegundos*1000, modo) ; llamada de la funcion que no especifica 'x' y 'y'
Code: Select all
usarPuntero := ((p_PosX = "") and (p_PosY = "")) ; usarPuntero vale true si p_PosX y p_PosY no ha sido especificados
Code: Select all
if (usarPuntero) ; si usarPuntero vale true...
MouseGetPos, p_PosX, p_PosY ; ...la funcion utiliza en lugar los 'x' y 'y' de la posicion del puntero al la llamada de PixelGetColor abajo
PixelGetColor, l_OutputColor, %p_PosX%, %p_PosY%, %p_GetMode%
Code: Select all
CoordMode, Mouse, %A_CoordModePixel% ; A_CoordModePixel es una variable interna de AutoHotkey que continene el valor actual de la coordmode pixel: de modo que PixelGetColor y MouseGetPos busca segun los mismos parametros
Lo mismo script con esta foncionalidad; tirara un MsgBox tan pronto como encontre el color si el raton lo esta sobrevolando (y antes de que se haya agotado el tiempo):
Code: Select all
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
#SingleInstance, force
CoordMode, Pixel, Screen
; ---------------------- variables: modificales a tu eleccion ----------------------
colorQueBuscar := "0xFF0000" ; rojo en R(ed)G(reen)B(blue) prueba con este color picker por ejemplo: https://duckduckgo.com/?q=color+picker+%23ff0000&ia=answer
modo := "RGB"
; x := 467
; y := 256
tiempoQueEsperarEnSegundos := 4
; ----------------------------------------------------------
return
!z:: ; ALT+Z
valor := WaitPixelColor(colorQueBuscar,,, tiempoQueEsperarEnSegundos*1000, modo) ; probamos sin especificar 'x' y 'y' para utilzar los del puntero...
; valor := WaitPixelColor(colorQueBuscar, x, y, tiempoQueEsperarEnSegundos*1000, modo)
if (valor = 0) ; si el color ha sido encontrado antes de que se agote el tiempo la funcion devuelve 0
MsgBox, color encontrada
else if (valor = 1) ; si surgió un problema
MsgBox, surgió un problema
else if (valor = 2) ; si se ha agotado el tiempo la funcionn devuelve dos
MsgBox, el color no ha sido encontrado - especialmente: se ha agotado el tiempo
return
WaitPixelColor(p_DesiredColor,p_PosX="",p_PosY="",p_TimeOut=0,p_GetMode="",p_ReturnColor=0) {
CoordMode, Mouse, %A_CoordModePixel% ; A_CoordModePixel es una variable interna de AutoHotkey que continene el valor actual de la coordmode pixel: de modo que PixelGetColor y MouseGetPos busca segun los mismos parametros
l_Start := A_TickCount
usarPuntero := ((p_PosX = "") and (p_PosY = "")) ; if x and y no ha sido recibidos, usarPuntero vale true
Loop {
if (usarPuntero) ; si usarPuntero vale true...
MouseGetPos, p_PosX, p_PosY ; ...la funcion utiliza en lugar los 'x' y 'y' de la posicion del puntero
PixelGetColor, l_OutputColor, %p_PosX%, %p_PosY%, %p_GetMode%
If ( ErrorLevel )
Return ( p_ReturnColor ? l_OutputColor : 1 ) ; si p_ReturnColor no ha sido especificado, devuelve 1
If ( l_OutputColor = p_DesiredColor )
Return ( p_ReturnColor ? l_OutputColor : 0 ) ; ...si p_ReturnColor no ha sido especificado, devuelve 0
If ( p_TimeOut ) && ( A_TickCount - l_Start >= p_TimeOut ) ; si p_TimeOut ha sido especificado y si ha transcurrido p_TimeOut milisegundos...
Return ( p_ReturnColor ? l_OutputColor : 2 ) ; ...si p_ReturnColor no ha sido especificado, devuelve 2
}
}
; https://github.com/MasterFocus/AutoHotkey/blob/master/Functions/WaitPixelColor/WaitPixelColor.ahk
Re: Ayuda Libreria WaitPixelColor
Fantastico. Muchisimas gracias!
Me pongo a estudiar el codigo ahora mismo
Un saludo
Me pongo a estudiar el codigo ahora mismo
Un saludo
Who is online
Users browsing this forum: No registered users and 79 guests