Имитация выхода на клавиатуре (создание компьютера представляет собой другую компьютерную клавиатуру)
Я хочу иметь возможность подключить компьютер. USB-порт к USB-порту компьютера B, чтобы компьютер A работал как клавиатура компьютера B.
Любая идея, как я буду это делать?
Я не ищу готового решения (хотя, если он уже существует и является открытым исходным кодом I
не будет возражать), но для начальной точки или хорошего ресурса.
Я предполагаю, что мне нужно будет написать драйвер, который имитирует протокол клавиатуры, и мне также нужно будет разобраться со всем сценарием master/slave USB.
В любом случае, любая помощь будет оценена.
P.S.
Я тоже хочу сделать это с помощью мыши, но я думаю, что это будет очень похожий процесс, и я думаю (но я мог бы ошибаться), что начать с клавиатуры будет проще.
Ответы
Ответ 1
Я очень рад найти что-то, что сделает это от Hagstrom Electronics. Он принимает последовательный вход и отправляет выход USB-клавиатуры на другой компьютер. Если вы совместите это с легко доступным USB-адаптером последовательного интерфейса, тогда вы будете золотыми.
http://www.hagstromelectronics.com/products/usbkm232.html
Я искал несколько недель, чтобы найти это, поэтому решил вернуться на некоторые форумы и поделиться открытием.
Ответ 2
Linux поддерживает режим гаджета USB, но я думаю, для этого вам нужно специальное оборудование. То есть порт USB на обычном ПК не может работать в режиме гаджета.
Альтернативой является подключение LPT-порта к входу клавиатуры PS/2, это технически проще.
Ответ 3
Если бы не USB, я бы подключил их через LAN и имел клиентскую/серверную С# -программу, которая эмулирует клавиатуру/мышь (например, через DirectInput).
Для части USB, насколько я могу судить, вам понадобится какой-то аппаратный адаптер. Если вы занимаетесь разработкой аппаратного обеспечения или, по крайней мере, не боитесь паяльника и некоторых программ микропрограмм, посмотрите http://www.obdev.at/products/vusb/hidkeys.html, где HID стек для небольшого чипа atmel доступен бесплатно. Для этого решения вам понадобятся два чипа atmega, которые обмениваются данными через I²C или SPI.
Я бы рекомендовал также электрическое разделение двух ПК. Вы никогда не знаете, имеют ли они одну и ту же электрическую землю или нет.