плагин ввода python не обнаруживает клавиатуру и не печатает нажатия клавиш

Вопрос или проблема

Я использую плагин Python Inputs для создания комбинаций клавиш на моем ноутбуке с Windows. По какой-то причине работает только ввод с контроллера, а клавиатура – нет. Она распознается, когда я запускаю

    for device in devices:
        print(device)

но когда я запускаю

from __future__ import print_function

from inputs import get_key


def main():
    """Просто выводите информацию о событиях, когда нажимают клавиши."""
    while 1:
        events = get_key()
        if events:
            for event in events:
                print(event.ev_type, event.code, event.state)

if __name__ == "__main__":
    main()

я ничего не получаю, ни одна из кнопок не выводит код/состояние события, но версия для контроллера работает.

Я пробовал каждую строчку кода, найденную онлайн, которая использует “get_key” или какую-либо вариацию, которую я могу адаптировать для использования get_key. Я пытался как с встроенной клавиатурой, так и с USB-клавиатурой. Этот плагин просто слишком стар на данный момент? Есть ли другой метод, который я мог бы использовать? Большое спасибо.

Ответ или решение

Вопрос: Не работает детектор клавиатуры в плагине Inputs для Python

Вы столкнулись с проблемой, когда библиотека Inputs не считывает нажатия клавиш с клавиатуры, хотя контроллер успешно работает. Давайте подробно разберем возможные причины этой проблемы и предложим пути её решения.

Основные шаги при помощи библиотеки Inputs

  1. Убедитесь, что библиотека установлена правильно:
    Убедитесь, что у вас установлена последняя версия библиотеки Inputs. Для установки или обновления используйте команду:

    pip install inputs --upgrade
  2. Проверка устройств:
    Как вы уже упомянули, вы можете просмотреть обнаруженные устройства, выполнив следующий код:

    from inputs import get_key, devices
    
    for device in devices:
       print(device)

    Убедитесь, что ваша клавиатура отображается в списке устройств. Если она присутствует, библиотека видит её, но это не гарантирует корректную передачу событий нажатий клавиш.

  3. Использование get_key:
    Если вы используете get_key() и не получаете никаких событий от клавиатуры, возможно, это связано с тем, что библиотека APIs не поддерживает определённые функции или ваше устройство не правильно конфигурировано для считывания событий клавиатуры.

Возможные решения

  1. Поддержка ОС и версии Python:
    Убедитесь, что вы используете совместимую версию Python и Windows. Библиотека может не поддерживать некоторые особенности Windows или имеет ограничения по совместимости с различными версиями Python.

  2. Привилегии:
    Если ваше приложение не выполняется с достаточными правами, это может препятствовать сбору событий. Попробуйте запустить вашу программу от имени администратора.

  3. Замена библиотеки:
    Если вышеуказанные шаги не решают вашу проблему, возможно, стоит рассмотреть смену технологии. Вам подойдут следующие альтернативные библиотеки:

    • Pygame: Это библиотека для разработки игр, но она также идеально подходит для отслеживания событий клавиатуры и контроллеров.
      import pygame
      pygame.init()
      while True:
       for event in pygame.event.get():
           if event.type == pygame.KEYDOWN:
               print("Key Pressed: ", event.key)
    • Keyboard: Эта библиотека позволяет отслеживать события клавиатуры более эффективно. Пример использования:

      import keyboard
      
      def on_key_event(event):
       print(f"Key: {event.name}, State: {event.event_type}")
      
      keyboard.hook(on_key_event)
      keyboard.wait()  # Держит программу активной

Заключение

Ваша проблема с детекцией клавиатуры в библиотеке Inputs может зависеть от нескольких факторов, включая поддержку устройства и конфигурацию окружения. Мы рекомендуем попробовать альтернативные библиотеки, если проблема не будет разрешена. Если у вас есть дополнительные вопросы, не стесняйтесь обращаться за помощью.

Спасибо за ваше внимание, и надеюсь, что данная информация будет вам полезна.

Оцените материал
Добавить комментарий

Капча загружается...