
Pynputで、マウスイベントとキーイベントを取得する。
マウスイベントリスナーを作成
キーボードリスナー作成し、終了するまでまつ。
マウスイベントリスナーでは、クリック、MOVE、スクロールを処理する
キーボードリスナーでは、押されたキーを表示する。ESCボタンで、マウスリスナー終了し、キーボードリスナー終了する。
from pynput import keyboard, mouse
def on_key_press(key):
try:
print(f'Key pressed: {key.char}')
except AttributeError:
print(f'Special key pressed: {key}')
if key == keyboard.Key.esc:
mouse_listener.stop()
print("Mouseリスナーを停止ししました。")
return False
def on_click(x, y, button, pressed):
if pressed:
print(f'Clicked at ({x}, {y}) with {button}')
def on_move(x, y):
print(f'move to ({x}, {y})')
def on_scroll(x, y, dx, dy):
if dy >= 0:
dir = 'Scroll Up: '
else:
dir = 'Scroll Dn: '
print(f'{dir} pos({x}, {y}) scroll({dx}, {dy})')
mouse_listener = mouse.Listener(on_click=on_click,
on_move=on_move,
on_scroll=on_scroll)
mouse_listener.start()
# キーボードリスナー開始→終了するまで待つ
with keyboard.Listener(on_press=on_key_press) as key_listener:
key_listener.join()
print(f'サンプルコード終了')