deteccion de color Topic is solved

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

alessiox741

deteccion de color  Topic is solved

Post by alessiox741 » 31 Jul 2022, 12:57

hola, estoy haciendo ahk, necesito que al presionar una tecla busque un color y le de click, podrian darme un ejemplo de ahk

User avatar
ositoMalvado
Posts: 180
Joined: 24 Dec 2019, 12:02
Contact:

Re: deteccion de color

Post by ositoMalvado » 09 Aug 2022, 15:14

Estimado compañero, aquí le presento un código que hice para solventar su problema.

Actualmente está configurado para que con la tecla "Z" usted seleccione el color bajo el puntero el mouse, para luego con la tecla "C" busque el color asignado y además mueva el puntero el mouse a la posición el color ecnontrado.

Tenga en cuenta que usted puede pedirme algo más específico, yo solo respondo sobre lo que usted va pidiendo. Aquí el código. Puede modificarlo y "jugar" con él para entender su funcionamiento, le he realizado comentarios para poder guiarlo en la secuencia de pasos.

Code: Select all


;INICIA PROGRAMA
global PIXEL_COLOR:=new puntoColor()
;ASIGNAMOS UNA VARIABLE GLOBAL LA CUAL USAREMOS POR EJEMPLO PARA PIXEL DE COLOR ROJO, LA CLASE ES "puntoColor"
global DEBUG:=false
;VARIABLE DEBUG UTILIZADA PARA MOSTRAR MENSAJES AL UTILIZAR EL PROGRAMA O "false" PARA QUE NO MUESTRE MENSAJES

class puntoColor{
    ;CREAMOS CLASE CON PROPIEDADES "color", posición "x" y posición "y"
    color:=""
    x:=""
    y:=""

    setear(){
        ;FUNCIÓN QUE OBTENDRA EL COLOR DEL PIXEL BAJO LA FLECHA DEL RATÓN Y LO ASIGNARA A "this.color"
        MouseGetPos, ox, oy
        PixelGetColor, pcolor, % ox, % oy
        this.color:=pcolor
        if(DEBUG)
            MsgBox,, Color obtenido!, % "El color ha sido configurado a " this.color
    }

    buscar(){
        ;FUNCIÓN QUE BUSCA EL PRIMER PIXEL CON EL COLOR QUE PREVIAMENTE DEBE ESTAR SETEADO
        PixelSearch, ox, oy, 0, 0, % A_ScreenWidth, % A_ScreenHeight, % this.color, 3, Fast
        if !ErrorLevel
            encontro:=true
        if(encontro){
            this.x:=ox
            this.y:=oy
            if(DEBUG)
                MsgBox,, Color encontrado!, % "El color " this.color " ha sido encontrado en el punto x=" this.x ", y=" this.y
        }else
            if(DEBUG)
                MsgBox,, Color no existe!, % "El color " this.color " no se encontró"
    }

    ir(){
        ;FUNCIÓN PARA MOVER EL MOUSE A LA POSICIÓN QUE HA SIDO ENCONTRADA CON LA FUNCION "buscar" DE LA ACTUAL CLASE
        if(this.x!=""){
            MouseMove, % this.x, % this.y, 0
            Sleep, 1
        }
    }
}
;FINALIZA INICIALIZACIÓN DE PROGRAMA
return

Z::
    ;CON TECLA "Z" ASIGNAREMOS UN COLOR AL OBJETO "PIXEL_COLOR"
    PIXEL_COLOR.setear()
Return

C::
    ;CON TECLA "C" BUSCARÁ LA POSICIÓN DEL PRIMER PIXEL DEL COLOR PREVIAMENTE SETEADO CON "C"
    PIXEL_COLOR.buscar()
    ;LUEGO SE MOVERÁ EL MOUSE A LA POSICIÓN ENCONTRADA
    PIXEL_COLOR.ir()
Return

My WEB some useful stuff

Ricky007_1
Posts: 1
Joined: 27 Oct 2022, 12:01

Re: deteccion de color

Post by Ricky007_1 » 27 Oct 2022, 12:05

Hola, y que ocurre si yo quiero que detecte la repeticion de colores por ejemplo en un casino ruleta se repite 7 veces el color rojo, entonces almacena cuantas veces se repitió a la 7ma vez se activa el mouse para hacer una apuesta.

Post Reply

Return to “Pedir Ayuda”