2010-08-23 95 views
32

Actualmente estoy en el proceso de hacer que mi Nintendo Wiimote (algo realmente triste) funcione con mi computadora como un mouse. Me las he arreglado para hacer que el control del nunchuk stick realmente mueva el mouse hacia arriba y hacia abajo, hacia la izquierda y hacia la derecha en la pantalla. Esto fue muy emocionante. Ahora estoy estancado.Simular clics del mouse en Python

Quiero hacer clic izquierdo/derecho en las cosas a través de python cuando presiono A, cuando fui a hacer una búsqueda, ¿todo lo que ocurrió fue tkinter?

Así que mi pregunta es, ¿cómo llamo para hacer que Python haga clic con el botón izquierdo/derecho en el escritorio, y si es posible, quizás proporcione un fragmento?

¡Gracias por tu ayuda!

NOTA: Supongo que olvidé mencionar que esto es para Linux.

+2

Este será el sistema OS/ventanas dependientes probablemente. Idealmente, habrá enlaces de python para su sistema de ventanas de sistemas operativos. Normalmente, los argumentos son bastante similares a las llamadas C/C++/C#/Objective-C en las que está escrita la documentación. O puede que tenga suerte y tenga documentos de Python reales. Al menos publique en qué sistema operativo está trabajando para que la gente pueda ayudar. – aaronasterling

+0

Probablemente esta respuesta no sea relevante, pero tal vez podría consultar la fuente del proyecto Sikuli. Es jython pero ... – joaquin

+0

Parece un buen proyecto ... ¿qué estás usando para mover el mouse? ¿Estás haciendo eso a través de Python, o de otra manera? Y, por supuesto, ¿en qué OS/DE/WM? Por cierto, hace algún tiempo, encontré un controlador de Xorg que debería permitir usar el Wiimote como mouse (para el proyecto de pizarra interactiva ir-pen), ¿tal vez podría hacer el trabajo ...? – redShadow

Respuesta

2

Puede intentar interconectar el programa XTE desde la secuencia de comandos de Python.

2

Abra su terminal y Goto cd/usr/share/pyshared/retorcidos/protocolos/ratones
puede este script __init__.pymouseman.py pitón va a trabajar para usted, échales un vistazo.

4

El paquete evdev proporciona enlaces a partes del subsistema de manejo de entrada en Linux. También sucede que incluye una interfaz pitónica para uinput.

Ejemplo de envío de un evento de movimiento relativo y un ratón izquierda clic 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() 
23

Puede utilizar PyMouse que ahora se ha fusionado con PyUserInput. Lo instalé a través de pepita:

  1. apt-get install python-pip

  2. pip install pymouse

En algunos casos se utiliza el cursor y en otros eventos de ratón simulado 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 qué botón del mouse desea usar. Ex botón izquierdo:

m.click(x,y,1) 

Tenga en cuenta que en Linux requiere Xlib.

0

Puede instalar el módulo de automatización PyAutoGUI GUI desde PyPI (ejecutar pip install pyautogui) y luego llamar al pyautogui.click() hacer clic en un cierto coordenadas X e Y de la pantalla:

>>> import pyautogui 
>>> pyautogui.click(50, 100) 
>>> pyautogui.moveTo(200, 200) 

PyAutoGUI funciona en Windows, Mac, y Linux, y en Python 2 y 3. También puede emular el teclado, arrastrar el mouse, tomar capturas de pantalla y hacer un simple reconocimiento de imágenes de las capturas de pantalla.

documentos completos están en https://pyautogui.readthedocs.org/

3

PyAutoGui funciona excelentes .. Gracias a Al Sweigart ...

Un ejemplo de la mía ...

import pyautogui 

pyautogui.FAILSAFE = False 

for x in range(555, 899): 
    pyautogui.moveTo(x, x) 
Cuestiones relacionadas