autohotkey - 使用 AutoHotkey 控制操纵杆 Axis

标签 autohotkey axis axes joystick remap

我很快就会得到一个用于坎巴拉太空计划的飞行杆,并希望将它进行 AHK 化,就像我在计算机上使用的所有其他外围设备一样。我知道如何重新映射操纵杆按钮,以及如何获取飞行杆和 throttle Axis 的读数,但我不确定如何使用 AutoHotkey 虚拟控制 Axis 。我见过一些与 vJoy 和其他程序集成的库的提及,但那些看起来很复杂,我还没有弄清楚如何使用它们。是否可以在纯 AHK v1.1 中操纵操纵杆 Axis ?

最佳答案

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

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

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

但是,有一个解决方法:
安装Shaul's vJoy ,然后你就可以创建一个假的“虚拟”棒。
然后,您从物理摇杆读取输入,并将(更改的)状态写入虚拟 vJoy 摇杆。

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

这种方法的问题是物理摇杆对游戏仍然可见,因此您需要强制游戏从虚拟摇杆而不是物理摇杆获取输入。这可能很难,因为在游戏的绑定(bind)屏幕中,当您移动物理棒时,游戏会在虚拟棒之前看到该移动,并绑定(bind)到它。

如果您希望能够进行这种重新映射而不必求助于编码,我会编写一个基于 AutoHotkey 的应用程序,名为 UCR它可以为您完成这一切。
UCR还包括一个“GameBind”功能,它允许您在所有重新映射中插入延迟,以便您可以移动摇杆,然后在游戏中单击绑定(bind),并等待UCR在延迟后移动摇杆,这样游戏中只能看到虚拟摇杆移动。
在游戏中完成所有绑定(bind)后,关闭 GameBind。

正在编写一套名为 ViGEm 的新应用程序,其中一个组件称为 HidGuardian。完成后,这应该允许我们对除 UCR 等重新映射应用程序之外的所有内容隐藏物理棒,使我们能够进行正确的重新映射,而不必诉诸延迟输入等。

关于autohotkey - 使用 AutoHotkey 控制操纵杆 Axis ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30560507/

相关文章:

autohotkey - 如何在像热键这样的功能中使用逗号(,)?

javascript - 使用 d3,如何创建直方图或条形图,其中最后一个条形是大于某个数字的所有值的计数?

matlab - 将图例与轴对象匹配

r - 使用 ggplot2 以粗体对齐单个轴标签

matlab - 更改 MATLAB Polarplot 中的网格线颜色/对比度

autohotkey - AHK_Basic 和 AHK_L 有什么区别?

javascript - 使用 OLE 自动化访问 Javascript 变量

autohotkey - 如何在 AutoHotkey 中检索当前脚本的文件名?

r - ggplot 带有所有 x Axis 值的 x Axis 标签

java - Axis :获取 java.lang.RuntimeException:java.lang.UnsupportedClassVersionError:.class 文件中的版本号错误