Python: одновременная запись нажатий клавиш и движений мыши

не могу найти решение следующей проблемы:

Я хотел бы одновременно записывать нажатия клавиш и движения мыши. Прямо сейчас я попытался объединить сценарии из документации пакета pynput.

Мониторинг мыши: https://pynput.readthedocs.io/en/latest/mouse.html#monitoring-the-mouse

Мониторинг клавиатуры: https://pynput.readthedocs.io/en/latest/keyboard.html#monitoring-the-keyboard

from pynput import mouse
from pynput import keyboard

def on_move(x, y):
    print('Pointer moved to {0}'.format(
        (x, y)))

def on_click(x, y, button, pressed):
    print('{0} at {1}'.format(
        'Pressed' if pressed else 'Released',
        (x, y)))
    if not pressed:
        # Stop listener
        return False

def on_scroll(x, y, dx, dy):
    print('Scrolled {0}'.format(
        (x, y)))

def on_press(key):
    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
    except AttributeError:
        print('special key {0} pressed'.format(
            key))

def on_release(key):
    print('{0} released'.format(
        key))
    if key == keyboard.Key.esc:
        # Stop listener
        return False 

# Collect events until released
with mouse.Listener(
        on_move=on_move,
        on_click=on_click,
        on_scroll=on_scroll) as listener:
    listener.join()
with keyboard.Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()   

Прямо сейчас прослушиватель клавиатуры запускается только после закрытия прослушивателя мыши. Есть ли способ одновременной записи мыши и клавиатуры? Есть ли лучшие сайт-пакеты для этого? Заранее большое спасибо!


person AlphaLeviathan    schedule 03.01.2019    source источник


Ответы (1)


Все, что тебе нужно, это мой друг

# Collect events until released
with keyboard.Listener(on_release=on_release) as k_listener, mouse.Listener(on_click=on_click) as m_listener:
    k_listener.join()
    m_listener.join()
person wowo878787    schedule 06.12.2019