Управление осями джойстика с помощью AutoHotkey

Я скоро получу джойстик для космической программы Kerbal и надеялся AHK-ify его, как и любое другое периферийное устройство, которое я использую на своем компьютере. Я знаю, как переназначить кнопки джойстика и как получить показания осей джойстика и газа, но я не знаю, как управлять осями виртуально с помощью AutoHotkey. Я видел некоторые упоминания об интеграции библиотек с vJoy и другими программами, но они выглядят сложными, и я не понял, как их использовать. Можно ли манипулировать осями джойстика в чистом AHK v1.1?


person Hactar    schedule 31.05.2015    source источник


Ответы (1)


Нет, невозможно изменить то, как физический джойстик отчитывается, используя любое стороннее программное обеспечение, не говоря уже о AutoHotkey.

Однако X360CE может изменить то, как игра видит панель XBox, потому что он вставляет фальшивую XInput DLL в папку с игрой, поэтому, когда игра делает вызовы XInput, она их перехватывает.

Очевидно, что если джойстик поставляется с драйвером, программное обеспечение может изменить отчеты джойстика.

Однако есть обходной путь:
установите vJoy Шауля, после чего вы сможете создать поддельный «виртуальный» джойстик.
Затем вы считываете ввод с физического джойстика и записываете (измененное) состояние на виртуальный джойстик vJoy.

Я написал библиотеку под названием CvJoyInterface, которая делает доступ к vJoy из AHK очень простым.

Проблема с этим методом заключается в том, что физическая флешка по-прежнему видна игре, поэтому вам нужно заставить игру принимать данные с виртуальной флешки, а не с физической флешки. Это может быть сложно, потому что на экране привязки игры, когда вы перемещаете физический джойстик, игра увидит этот ход перед виртуальным джойстиком и вместо этого привяжется к нему.

Если вы хотите иметь возможность выполнять такое переназначение, не прибегая к кодированию, я пишу приложение на основе AutoHotkey под названием UCR, который может сделать все это за вас.
UCR также включает функцию "GameBind", которая позволяет вам вставлять задержку во все переназначения, чтобы вы могли переместите джойстик, ЗАТЕМ нажмите «Привязать» в игре и подождите, пока UCR переместит джойстик после задержки, чтобы игра видела только движение виртуального джойстика.
После того, как вы сделали все свои привязки в игре, выключите GameBind. .

Пишется новый набор приложений под названием ViGEm, один из компонентов которого называется HidGuardian. Когда закончите, это должно позволить нам скрыть физическую флешку от всего, кроме приложений переназначения, таких как UCR, что позволит нам выполнять правильное переназначение, не прибегая к задержке ввода и т. д.

person Clive Galway    schedule 15.03.2017