Использование python для имитации USB-клавиатуры

Я хорошо знаю различные библиотеки автоматизации, которые я могу использовать вместе с Python (или даже как отдельную программу/сущность вместе) - это не то, что мне здесь нужно...

Вот чего я хочу добиться...

{COMP1}  -------->  {COMP2}

(1) --> = COMP1 USB port[01] is connected to COMP2 USB port[01]
    (it could be any port, I'm just using [01] as an example)
(2) COMP1 USB port[01] "looks-like" a Generic USB keyboard
    (I'll maybe need to spoof HID values so COMP2 treats it as a keyboard)
(3) My program would send keystroke signals into COMP2 in such a way that
    COMP2 would treat the input as any other connected keyboard device

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

Я думаю, что эта статья начинает действительно царапать Поверхность, но я понятия не имею, что с ней делать дальше.

Возможно, PySerial может быть другим методом, но я не нашел надежных примеров, когда python выдает нажатия клавиш на USB (вместо этого он, кажется, слушает)

Любая помощь или идеи приветствуются!


person Doug E Fresh    schedule 17.03.2016    source источник
comment
USB так не работает   -  person Alex P.    schedule 16.04.2016


Ответы (1)


В итоге я использовал устройство Teensy 3.2 вместо кодирования на Python. ">https://www.pjrc.com/teensy/

По сути, это ардуино-кузен аппаратное обеспечение может маскировать/имитировать любое USB-устройство (отправляя определенный номер HID)... После подключения к другому компьютеру (и немного кода) вы можете отправить последовательность нажатий клавиш/команд программно для целевого компьютера - это было очень легко (конечно, пайка в первый раз казалась немного сумасшедшим ученым), но это было и очень весело.

Я опубликую образцы кода на github, если кому-то будет любопытно или кто-то ответит на эту тему в будущем.

person Doug E Fresh    schedule 21.04.2016