2009-12-27 34 views
5

Soy muy nuevo en python. Estoy intentando escribir un programa que haga clic con el mouse en (x, y), moverlo a (a, b), y luego esperar hasta que el color debajo del mouse sea de cierto color, digamos #fff. Cuando es ese color, vuelve a hacer clic y luego se repite.Simular clic del mouse/Detectar color debajo del cursor en Python

No encuentro una buena API para cosas relacionadas con el mouse para python.

+1

Puede encontrar información haciendo clic aquí: http://stackoverflow.com/questions/1181464/controlling-mouse-with-python – snw

Respuesta

6

La API para simular eventos de mouse depende de su plataforma. No conozco ninguna solución multiplataforma.

En Windows, puede acceder a la API Win32 gracias a ctypes. ver mouse_event on MSDN. Usted también podría estar interesado por pywinauto

Para obtener el color debajo del mouse, necesita la posición del mouse. Ver GetCursorPos on MSDN. Entonces, si su aplicación tiene una API para obtener el color en esta posición, puede usarla. De lo contrario, puede tratar de tomar una pequeña porción de la pantalla alrededor del cursor y usar PIL para obtener los colores de cada píxel en esta área. Creo que la captura de pantalla PIL solo funciona en Windows, pero no estoy seguro.

estoy usando la siguiente función de una necesidad similar:

def grab_main_color(self, rect, max_colors=256): 
    """returns a tuple with the RGB value of the most present color in the given rect""" 
    img=ImageGrab.grab(rect) 
    colors = img.getcolors(max_colors) 
    max_occurence, most_present = 0, 0 
    try: 
     for c in colors: 
      if c[0] > max_occurence: 
       (max_occurence, most_present) = c 
     return most_present 
    except TypeError: 
     raise Exception("Too many colors in the given rect") 
-1

si estás en Windows, a continuación, para este tipo de cosas, que realmente quiero probar autohotkey. No es Python, pero es extremadamente poderoso por hacer este tipo de cosas en una máquina con Windows. La comunidad de usuarios es extremadamente útil, también. Echa un vistazo a su foro "pida ayuda".

Cuestiones relacionadas