Отображение событий клавиатуры мыши
Я новичок в Python, и я хочу написать скрипт, который прослушивает событие нажатия левой, правой или средней (колесо мыши) кнопки. Когда нажата левая или правая кнопка мыши, она ничего не должна делать. Другими словами, скрипт должен блокировать щелчки левой и правой мышью.
Но когда нажата средняя кнопка мыши, скрипт должен нажать кнопку выхода.
Я уже нашел библиотеку для прослушивания событий мыши: Pynput. Проблема в том, что скрипт должен работать на компьютере с Windows XP, поэтому я должен использовать Python 3.4.4, и я не могу найти версию Pynput для этой версии Python.
Мой вопрос сейчас: как я могу прослушивать щелчки мыши и отправлять события клавиатуры в Python 3.4.4 для WindowsXP?
ОБНОВИТЬ:
Теперь 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
Зачем? И как я могу решить это?