可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I'm currently in the process of making my Nintendo Wiimote (Kinda sad actually) to work with my computer as a mouse. I've managed to make the nunchuk's stick control actually move the mouse up and down, left and right on the screen! This was so exciting. Now I'm stuck.
I want to left/right click on things via python when I press A, When I went to do a search, All it came up with was tkinter?
So my question is, What do I call to make python left/right click on the desktop, and if it's possible, maybe provide a snippet?
Thank you for your help!
NOTE: I guess I forgot to mention that this is for Linux.
回答1:
python-uinput is very easy to use.
http://tjjr.fi/software/python-uinput/
Here's an example https://github.com/tuomasjjrasanen/python-uinput/blob/master/examples/mouse.py
回答2:
You can use PyMouse which has now merged with PyUserInput. I installed it via pip:
apt-get install python-pip
pip install pymouse
In some cases it used the cursor and in others it simulated mouse events without the 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
You can also specify which mouse button you want used. Ex left button:
m.click(x,y,1)
Keep in mind, on Linux it requires Xlib.
回答3:
The evdev package provides bindings to parts of the input handling subsystem in Linux. It also happens to include a pythonic interface to uinput.
Example of sending a relative motion event and a left mouse click with 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:
PyAutoGui works superb.. Thanks to Al Sweigart...
An example of mine...
import pyautogui
pyautogui.FAILSAFE = False
for x in range(555, 899):
pyautogui.moveTo(x, x)
回答5:
you might find this helpful:
http://www.eventghost.org/
Good luck!
回答6:
You can try to interface XTE program from the Python script.
回答7:
Open your terminal and goto cd /usr/share/pyshared/twisted/protocols/mice
may this __init__.py
mouseman.py
python script will work for you,check them out.
回答8:
You can install the PyAutoGUI GUI automation module from PyPI (run pip install pyautogui
) and then call the pyautogui.click()
to click on a certain X and Y coordinates of the screen:
>>> import pyautogui
>>> pyautogui.click(50, 100)
>>> pyautogui.moveTo(200, 200)
PyAutoGUI works on Windows, Mac, and Linux, and on Python 2 and 3. It also can emulate the keyboard, do mouse drags, take screenshots, and do simple image recognition of the screenshots.
Full docs are at https://pyautogui.readthedocs.org/
回答9:
I didn't see this mentioned, so here it goes - there is also python-dogtail
; see:
- Automated GUI testing with Dogtail | Red Hat
- Testing/Automation/DogtailTutorial - Ubuntu Wiki
It requires "Enable assistive technologies" in the Gnome Desktop - but can in principle obtain e.g. names of GUI buttons of an application, and allow virtual clicks on them (rather than via x/y coordinates).