使用AutoHotkey

时间:2015-05-31 17:37:02

标签: autohotkey axis axes joystick remap

我很快就会为Kerbal太空计划获得一个飞行棒,并希望能够像我在计算机上使用的所有其他外围设备一样使用它。我知道如何重新映射操纵杆按钮,以及如何获得飞行杆和油门轴的读数,但我不确定如何使用AutoHotkey虚拟地控制轴。我已经看到一些提到的库与vJoy和其他程序集成,但那些看起来很复杂,我还没弄明白如何使用它们。是否可以在纯AHK v1.1中操纵操纵杆轴?

1 个答案:

答案 0 :(得分:1)

不,无法使用任何第三方软件更改物理操纵杆的报告方式,更不用说AutoHotkey了。

但是,X360CE可以改变游戏看到XBox键盘的方式,因为它会在游戏文件夹中插入一个虚假的XInput DLL,因此当游戏进行XInput调用时,它会拦截它们。

显然,如果操纵杆附带驱动程序,软件可以改变操纵杆报告的方式。

然而,有一个解决方法:
安装https://sapui5.hana.ondemand.com/explored.html#/sample/sap.ui.layout.sample.Form354/code/Page.controller.js,然后你可以创建一个假的"虚拟"坚持下去。
然后,您从物理棒读取输入,并将(改变的)状态写入虚拟vJoy棒。

我编写了一个名为Shaul's vJoy的库,这使得从AHK访问vJoy变得非常简单。

这种方法的问题在于游戏中仍然可以看到物理棒,所以你需要强制游戏从虚拟棒而不是物理棒中获取输入。这可能很难,因为在游戏的绑定屏幕中,当您移动物理棒时,游戏将在虚拟棒之前看到移动,而是绑定到那个。

如果您希望能够进行此类重新映射而无需使用编码,我会编写一个名为CvJoyInterface的基于AutoHotkey的应用程序,它可以为您完成所有这些。
UCR还包括一个" GameBind"功能,允许您在所有重映射中插入延迟,以便您可以移动操纵杆,然后在游戏中单击绑定,并等待UCR在延迟后移动操纵杆,因此游戏只能看到虚拟操纵杆移动。
一旦你在游​​戏中制作了所有绑定,关闭GameBind。

正在编写一套名为ViGEm的新应用程序,其中一个组件称为HidGuardian。完成后,这应该允许我们隐藏除了重新映射应用程序(如UCR)之外的所有内容,使我们能够进行适当的重新映射而无需延迟输入等。