Стандартный Windows не умеет различать две клавиатуры: обе USB-клавиатуры, подключённые к одному компьютеру, сливаются в единый поток ввода, и нажатие клавиши на любой из них воспринимается системой одинаково. Именно поэтому использовать вторую клавиатуру как геймпад «из коробки» не получится — понадобится специальная программа-перехватчик, которая отделяет HID-устройства друг от друга и переназначает их клавиши на виртуальный контроллер.

Такая схема востребована в нескольких сценариях: локальный кооператив на одном ПК, когда геймпад только один, самодельные контроллеры для симуляторов, а также педали и макропанели, собранные из старой клавиатуры. Ниже разберём, какие программы для этого существуют, как настроить маппинг и с какими ограничениями придётся столкнуться.

Почему вторая клавиатура не работает как отдельное устройство

Операционная система обрабатывает ввод с клавиатур через общий стек: события от всех HID-устройств попадают в одну очередь сообщений. Приложение «видит» только код клавиши, но не её источник. Поэтому без дополнительного ПО разделить две клавиатуры на уровне игры невозможно.

Обходной путь — работа на уровне драйвера фильтра или Raw Input API. Программы-перехватчики читают ввод напрямую с конкретного устройства по его идентификатору, подавляют стандартное событие и вместо него эмулируют нажатие на виртуальном геймпаде. Игра при этом уверена, что к ней подключён обычный контроллер XInput или DirectInput.

💡

Windows объединяет ввод со всех клавиатур в один поток. Разделить устройства можно только через программы, работающие с Raw Input или драйверами-фильтрами.