2010-08-23 49 views
32

Ich bin gerade dabei, meine Nintendo Wiimote (irgendwie traurig) mit meinem Computer als Maus zu arbeiten. Ich habe es geschafft, die Knüppelsteuerung des Nunchuks tatsächlich dazu zu bringen, die Maus auf und ab zu bewegen, links und rechts auf dem Bildschirm! Das war so aufregend. Jetzt stecke ich fest.Simulieren Mausklicks auf Python

Ich möchte links/rechts auf Dinge über Python klicken, wenn ich A drücke, als ich eine Suche machen wollte, kam alles mit tkinter?

Also meine Frage ist, was rufe ich auf, um Python links/rechts auf den Desktop zu klicken, und wenn es möglich ist, vielleicht ein Snippet?

Vielen Dank für Ihre Hilfe!

HINWEIS: Ich glaube, ich habe vergessen zu erwähnen, dass dies für Linux ist.

+2

Dieses OS/Windowing-System sein wird, abhängig wahrscheinlich. Idealerweise wird es Python-Bindungen zu Ihrem Windows-Betriebssystem geben. Normalerweise sind die Argumente den C/C++/C#/Objective-C-Aufrufen ziemlich ähnlich, in die die Dokumentation tatsächlich geschrieben wird. Oder Sie können Glück haben und tatsächliche Python-Dokumente haben. Melden Sie zumindest, auf welchem ​​Betriebssystem Sie sind, damit Leute helfen können. – aaronasterling

+0

Wahrscheinlich ist diese Antwort nicht relevant, aber vielleicht könnten Sie Sikuli Projektquelle überprüfen. Es ist jython, aber ... – joaquin

+0

Sieht aus wie ein nettes Projekt .. Was benutzen Sie, um die Maus zu bewegen? Machst du das über Python oder auf andere Weise? Und natürlich, auf welchem ​​OS/DE/WM? Btw, habe ich vor einiger Zeit einen Xorg-Treiber gefunden, der es erlauben sollte, die Wiimote als Maus zu benutzen (für das ir-interactive Whiteboard Projekt), könnte es vielleicht den Job machen ..? – redShadow

Antwort

2

Sie können versuchen, Schnittstelle XTE Programm aus dem Python-Skript.

2

Öffnen Sie Ihr Terminal und goto cd/usr/share/pyshared/verdrehten/Protokolle/Mäuse
kann diese __init__.pymouseman.py Python-Skript wird für Sie arbeiten, Schau sie dir an.

4

Das Paket evdev bietet Bindungen zu Teilen des Eingabehandhabungs-Subsystems in Linux. Es enthält auch eine pythonische Schnittstelle zu uinput.

Beispiel ein relatives Bewegungsereignis zu senden und einen linken Mausklick mit 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

Sie können PyMouse verwenden, die jetzt mit PyUserInput verschmolzen. Ich installierte es über pip:

  1. apt-get install python-pip

  2. pip install pymouse

In einigen Fällen ist es den Cursor verwendet und in anderen ist es ohne den Cursor Mausereignisse simuliert.

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 

Sie können auch angeben, welche Maustaste Sie verwenden möchten. Ex linke Taste:

Denken Sie daran, unter Linux benötigt Xlib.

0

Sie können die PyAutoGUI GUI Automatisierungsmodul von PyPI (Lauf pip install pyautogui) installieren und dann die pyautogui.click() auf einem bestimmten X klicken rufen und Y-Koordinaten des Bildschirms:

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

PyAutoGUI funktioniert unter Windows, Mac, und Linux, und auf Python 2 und 3. Es kann auch die Tastatur emulieren, Maus ziehen, Screenshots machen und einfache Bilderkennung der Screenshots machen.

Voll docs sind bei https://pyautogui.readthedocs.org/

3

PyAutoGui superb .. Dank Al Sweigart arbeitet ...

Ein Beispiel von mir ...

import pyautogui 

pyautogui.FAILSAFE = False 

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