我目前正在制作我的Nintendo Wiimote(实际上有点伤心)可以用我的电脑作为鼠标。我已经设法让nunchuk的操控杆实际上在屏幕上左右移动鼠标!这太令人兴奋了。现在我被卡住了。
当我按A时,我想通过python左键/右键单击,当我去搜索时,所有它想出来的都是tkinter?
所以我的问题是,我打算如何在桌面上左/右键盘进行python,如果可能,可以提供一个片段?
感谢您的帮助!
注意:我想我忘了提到这是针对Linux的。
答案 0 :(得分:29)
您可以使用现已与PyMouse合并的PyUserInput。我通过pip安装了它:
apt-get install python-pip
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。
答案 1 :(得分:16)
python-uinput非常易于使用。
http://tjjr.fi/software/python-uinput/
以下是https://github.com/tuomasjjrasanen/python-uinput/blob/master/examples/mouse.py
的示例答案 2 :(得分:4)
evdev包提供了对Linux中输入处理子系统部分的绑定。它也恰好包括一个输入的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()
答案 3 :(得分:3)
PyAutoGui工作精湛..感谢Al Sweigart ......
我的一个例子......
import pyautogui
pyautogui.FAILSAFE = False
for x in range(555, 899):
pyautogui.moveTo(x, x)
答案 4 :(得分:2)
你可能会觉得这很有帮助:
祝你好运!答案 5 :(得分:2)
您可以尝试从Python脚本中连接XTE程序。
答案 6 :(得分:2)
打开终端并转到 cd / usr / share / pyshared / twisted / protocols / mice
这个__init__.py
mouseman.py
python脚本可能适合您,请查看它们。
答案 7 :(得分:0)
您可以从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.它还可以模拟键盘,鼠标拖动,截屏,以及对屏幕截图进行简单的图像识别。
答案 8 :(得分:-1)
我没有看到这提到,所以在这里 - 还有python-dogtail
;见:
它需要Gnome桌面中的“启用辅助技术” - 但原则上可以获得例如应用程序的GUI按钮的名称,并允许虚拟点击它们(而不是通过x / y坐标)。