我是 Python 新手,我想编写一个脚本来监听左、右或中间(鼠标滚轮)按钮单击事件。单击鼠标左键或右键时,它应该什么也不做。换句话说,脚本应该阻止鼠标左右点击。
但是当单击鼠标中键时,脚本应该按下退出按钮。
我已经找到了一个监听鼠标事件的库:Pynput。问题是脚本必须在 Windows XP 机器上运行,所以我必须使用 Python 3.4.4,而且我找不到这个 Python 版本的 Pynput 版本。
我现在的问题是:如何在 WindowsXP 的 Python 3.4.4 中收听鼠标点击和发送键盘事件?
更新:
现在 Pynput 已正确安装并且可以正常工作了。我写了这个:
from pynput import mouse
from pynput.keyboard import Key, Controller
keyboard = Controller()
def on_click(x, y, button, pressed):
if button == mouse.Button.middle:
keyboard.press(Key.esc)
keyboard.release(Key.esc)
#after pressing the esc-key: stopPropagation(middle mouse click should not be forwarded to windows)
if button == mouse.Button.left:
print("left")
#stopPropagation(left mouse click should not be forwarded to windows)
if button == mouse.Button.right:
print("right")
#stopPropagation(right mouse click should not be forwarded to windows)
# Collect events until released
with mouse.Listener(
on_click=on_click) as listener:
listener.join()
我怎样才能完成我在#评论中写的内容?甚至可以做这样的事情,比如用 Python 防止在窗口中单击鼠标吗?另外我不明白的是,当我运行程序并且我想退出它(使用 ctrl+c)时,我必须按 100 次,然后它会显示:
Traceback (most recent call last):
File "C:\Users\path\hello.py", line 22, in <module>
File "C:\Python34\lib\site-packages\pynput-1.3.10-py3.6.egg\pynput\_util\__init__.py", line 178, in join
File "C:\Python34\lib\threading.py", line 1060, in join
self._wait_for_tstate_lock()
File "C:\Python34\lib\threading.py", line 1076, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
KeyboardInterrupt
为什么?我该如何解决这个问题?