У меня игровой ПК под управлением Windows 8.1. Постоянно возникает проблема, когда порядок любых подключенных контроллеров продолжает меняться произвольно. Я настроил множество игр и эмуляторов для ожидания контроллеров в определенном порядке, но когда я открываю панель управления «Игровые контроллеры» (т.е. joy.cpl) или запускаю dxdiag, я вижу, что порядок контроллеров изменился. все мои привязки.

Это влияет только на игры, которые используют DirectInput для чтения ввода с контроллеров. Игры, использующие Xinput, работают правильно.

Мне ясно, что эти игры используют порядок, в котором контроллеры перечисляются DirectInput, чтобы определить их порядок в игре. Это тот же порядок, в котором они отображаются на панели управления «Игровые контроллеры».

Есть ли способ изменить этот порядок?

Единственное, что я обнаружил, так это то, что если я физически отсоединяю USB-устройство, которое либо является контроллером, либо предоставляет интерфейс для контроллера (например, беспроводной приемник Xbox 360 или USB-ключ Bluetooth), а затем снова подключаю его эти контроллеры будут перемещены в конец списка. Но это все, что у меня есть. И я не знаю, как сделать этот процесс автоматическим. Я пытался использовать команду devcon для автоматического удаления этих устройств и повторного сканирования, и, хотя иногда это работает, часто он сообщает, что необходимо перезагрузить компьютер для удаления устройств, что означает, что это не влияет на порядок перечисления DirectInput.

1 ответ1

2

После нескольких лет беспорядка привязок контроллеров из-за произвольного упорядочения контроллеров в Windows 8.1 и отсутствия возможности их переупорядочить, я взял дело в свои руки и написал этот инструмент: devreorder

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .