40

我目前正在让我的 Nintendo Wiimote(实际上有点难过)将我的电脑用作鼠标。我已经设法让双节棍的摇杆控制实际上在屏幕上上下左右移动鼠标!这太令人兴奋了。现在我被困住了。

当我按 A 时,我想通过 python 左/右键单击东西,当我去搜索时,它想出的只是 tkinter?

所以我的问题是,我该调用什么来使 python 在桌面上左/右键单击,如果可能的话,也许提供一个片段?

感谢您的帮助!

注意:我想我忘了提到这是针对 Linux 的。

4

8 回答 8

32

您可以使用现已与 PyUserInput 合并PyMouse。我通过 pip 安装了它:

  1. apt-get install python-pip

  2. pip install pymouse

在某些情况下,它使用光标,而在其他情况下,它在没有光标的情况下模拟鼠标事件。

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

您还可以指定要使用的鼠标按钮。例如左键:

m.click(x,y,1)

请记住,在 Linux 上它需要 Xlib。

于 2013-04-13T23:25:39.303 回答
17

python-uinput 非常好用。

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

这是一个示例https://github.com/tuomasjjrasanen/python-uinput/blob/master/examples/mouse.py

于 2010-08-26T06:17:11.360 回答
4

evdev包提供对 Linux 中输入处理子系统部分的绑定。它也恰好包含一个到 uinput 的 Pythonic 接口。

使用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()
于 2012-08-23T17:24:17.523 回答
3

PyAutoGui 工作出色.. 感谢 Al Sweigart...

我的一个例子...

import pyautogui

pyautogui.FAILSAFE = False

for x in range(555, 899):
    pyautogui.moveTo(x, x)
于 2015-05-09T05:44:26.340 回答
2

您可以尝试从 Python 脚本连接XTE程序。

于 2010-08-25T19:25:49.200 回答
2

打开你的终端并转到cd /usr/share/pyshared/twisted/protocols/mice
可能这个__init__.py mouseman.pypython 脚本会为你工作,检查它们。

于 2012-03-06T12:19:06.360 回答
1

您可以从 PyPI(运行)安装 PyAutoGUI GUI 自动化模块pip install pyautogui,然后调用pyautogui.click()单击屏幕的某个 X 和 Y 坐标:

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

PyAutoGUI 适用于 Windows、Mac 和 Linux 以及 Python 2 和 3。它还可以模拟键盘、鼠标拖动、截屏以及对截屏进行简单的图像识别。

完整文档位于https://pyautogui.readthedocs.org/

于 2015-04-30T00:20:31.617 回答
-1

我没有看到提到这一点,所以就在这里 - 还有python-dogtail;看:

它需要 Gnome 桌面中的“启用辅助技术”——但原则上可以获取应用程序的 GUI 按钮的名称,并允许对它们进行虚拟点击(而不是通过 x/y 坐标)。

于 2013-10-18T01:54:57.120 回答