web-dev-qa-db-fra.com

Simuler des clics de souris sur Python

Je suis actuellement en train de faire en sorte que ma Nintendo Wiimote (un peu triste en fait) fonctionne avec mon ordinateur en tant que souris. J'ai réussi à faire en sorte que le contrôle du manche du nunchuk déplace la souris de haut en bas, à gauche et à droite de l'écran! C'était tellement excitant. Maintenant je suis coincé.

Je veux faire un clic gauche/droit sur les choses via python quand j'appuie sur A, quand je suis allé faire une recherche, tout ce que cela a donné était tkinter?

Ma question est donc la suivante: comment appeler un clic gauche/droit python sur le bureau et, si possible, fournir un extrait de code?

Merci de votre aide!

NOTE: Je suppose que j'ai oublié de mentionner que c'est pour Linux.

34
dbdii407
16
Epeli

Vous pouvez utiliser PyMouse qui a maintenant fusionné avec PyUserInput . Je l'ai installé via pip:

  1. apt-get install python-pip

  2. pip install pymouse

Dans certains cas, il utilisait le curseur et dans d'autres, il simulait des événements de souris sans le curseur.

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

Vous pouvez également spécifier le bouton de la souris que vous souhaitez utiliser. Ex gauche bouton:

m.click(x,y,1)

Gardez à l'esprit que sur Linux, Xlib est nécessaire.

28
Vlad

Le paquet evdev fournit des liaisons à des parties du sous-système de traitement des entrées sous Linux. Il arrive aussi d'inclure une interface Pythonic à uinput. 

Exemple d’envoi d’un événement de mouvement relatif et d’un clic gauche de la souris avec 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()
4
gvalkov

PyAutoGui fonctionne à merveille .. Merci à Al Sweigart ...

Un exemple de moi ...

import pyautogui

pyautogui.FAILSAFE = False

for x in range(555, 899):
    pyautogui.moveTo(x, x)
3
Kishore Kashyap

Vous pouvez essayer d’interfacer XTE programme à partir du script Python.

2
Agnius Vasiliauskas

cela pourrait vous être utile:

http://www.eventghost.org/

Bonne chance!

2
reckoner

Otwórz terminal i przejdź docd /usr/share/pyshared/twisted/protocols/mice
Czy skrypt python __init__.pymouseman.py będzie działał poprawnie, sprawdź je.

2
user1011455

Vous pouvez installer le module d'automatisation de l'interface graphique PyAutoGUI à partir de PyPI (exécuter pip install pyautogui), puis appeler le pyautogui.click() pour cliquer sur certaines coordonnées X et Y de l'écran:

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

PyAutoGUI fonctionne sous Windows, Mac et Linux, ainsi que sur Python 2 et 3. Il peut également émuler le clavier, faire glisser la souris, prendre des captures d'écran et effectuer une simple reconnaissance d'image des captures d'écran.

Les documents complets sont à https://pyautogui.readthedocs.org/

0
Al Sweigart