28 votos

Simular Clics del Ratón en Python

Actualmente estoy en el proceso de hacer mi Wiimote de Nintendo (un Poco triste) para trabajar con mi equipo como un ratón. Me las he arreglado para hacer el nunchuk de la barra de control de mover el ratón hacia arriba y abajo, izquierda y derecha en la pantalla! Esto era tan emocionante. Ahora estoy atascado.

Quiero derecha/izquierda haga clic en las cosas a través de python cuando hago clic en Una, Cuando fui a hacer una búsqueda, Todo lo que ocurrió fue tkinker?

Así que mi pregunta es, ¿Qué tengo que llamar para hacer el pitón izquierdo/derecho del ratón sobre el escritorio, y si es posible, tal vez proporcionar un fragmento de código?

Gracias por su ayuda!

NOTA: supongo que se me olvidó mencionar que esto es para Linux.

17voto

Usted puede utilizar PyMouse que ahora se ha fusionado con PyUserInput. He instalado a través de pip:

apt-get install python-pip

pip install pymouse

En algunos casos se utiliza el cursor y, en otros, se simularon los eventos de ratón sin el cursor.

from pymouse import PyMouse

m = PyMouse()
m.position() #gets mouse current position coordinates
m.move(x,y)
m.click(x,y) #the third argument "1" represents the mouse button
m.press(x,y) #mouse button press
m.release(x,y) #mouse button release

También puede especificar el botón del ratón que desea utilizar. Ex botón izquierdo:

m.click(x,y,1)

Tenga en cuenta, que en Linux requiere de Xlib.

12voto

Epeli Puntos 5475

python-uinput es muy fácil de usar.

http://tjjr.fi/software/python-uinput/

He aquí un ejemplo https://github.com/tuomasjjrasanen/python-uinput/blob/master/examples/mouse.py

3voto

gvalkov Puntos 1554

El evdev paquete proporciona enlaces a partes de la entrada de manejo del subsistema en Linux. También pasa a incluir una interfaz python para uinput.

Ejemplo de envío de un movimiento relativo de eventos y un clic izquierdo del ratón con evdev:

from evdev import UInput, ecodes as e

capabilities = {
    e.EV_REL : (e.REL_X, e.REL_Y), 
    e.EV_KEY : (e.BTN_LEFT, e.BTN_RIGHT),
}

with UInput(capabilities) as ui:
    ui.write(e.EV_REL, e.REL_X, 10)
    ui.write(e.EV_REL, e.REL_Y, 10)
    ui.write(e.EV_KEY, e.BTN_LEFT, 1)
    ui.syn()

2voto

reckoner Puntos 734

usted puede encontrar útil esta información:

http://www.eventghost.org/

Buena suerte!

2voto

Usted puede tratar de interfaz XTE programa de la secuencia de comandos de Python.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: