Превратите ключ pynput.keyboard.Key в значение ascii

Для проекта, над которым я работаю, мне нужно отправить клавиши клавиатуры, нажатые на одном компьютере, на другой. Мне удалось найти pynput, и он довольно хорошо определяет, какая клавиша нажата или отпущена. Моя проблема в том, что если нажата не буквенно-цифровая клавиша, она возвращает объект типа pynput.keyboard.Key, который я не смог найти каким-либо образом преобразовать в код ascii. Вот как выглядит простой код для обнаружения использования ключа:

from pynput import keyboard


def on_press(key):
    print(['pressed', key])


def on_release(key):
    print(['released', key])


def detect_keyboard():
    keyboard.Listener(on_press=on_press, on_release=on_release).start()


if __name__ == '__main__':
    detect_keyboard()
    while True:
        pass

Я действительно хотел бы знать, есть ли способ сделать это, и если нет, я был бы рад другим идеям, как реализовать мою цель.


person Nadav    schedule 16.12.2020    source источник


Ответы (1)


Я понимаю, что это было бы утомительно, но вы могли бы написать словарь со ссылками на ключи, возвращающими значения ascii. Например:

from pynput.keyboard import Key

AsciiKeys = {
    Key.backspace:8,
    Key.esc:27}

Затем вы позже сможете ссылаться на него, чтобы получить значения ascii. Вы сможете найти все текущие ключи здесь: https://pynput.readthedocs.io/en/latest/keyboard.html#pynput.keyboard.Key

person Dylan Kirby    schedule 28.01.2021