提问人:Vinícius 提问时间:1/31/2017 最后编辑:CommunityVinícius 更新时间:6/27/2023 访问量:2436
如何在 SendInput 上使用 INPUT_HARDWARE 来模拟 XBox 控制器输入?
How to use INPUT_HARDWARE on SendInput to simulate an XBox controller input?
问:
到目前为止,我已经能够使用 SendInput() 函数来模拟鼠标和键盘虚拟键,并使用 和 扫描键。MOUSEINPUT
KEYBDINPUT
我阅读(在 SO 上)是针对其他设备而不是鼠标或键盘的。我正在尝试使用 HARDWAREINPUT 结构模拟 Xbox 控制器(或任何控制器,如果可能有帮助)输入。有可能这样做吗?如何正确地做?INPUT_HARDWARE
SendInput()
答:
0赞
DJm00n
6/23/2023
#1
根据泄露的 WinXP 源代码,Win98 之后的系统级别根本不支持 SendInput 事件类型:INPUT_HARDWARE
case INPUT_HARDWARE:
if (fCanDiscontinue) {
/*
* Not supported on NT.
*/
RIPERR0(ERROR_CALL_NOT_IMPLEMENTED, RIP_WARNING, "xxxSendInput: INPUT_HARDWARE is for 9x only.");
goto discontinue;
}
break;
根据 Wine 源代码,它似乎被用于一些用于 HID 设备支持的旧代码中。
我尝试使用 SendInput() 和 HARDWAREINPUT 结构模拟 Xbox 控制器(或任何控制器,如果可能有帮助)输入。
为此,最好尝试使用虚拟游戏手柄仿真框架 (ViGEmBus)。它可以模拟 XInput 控制器,并经过实战测试。
评论