问题标签 [xinput]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Xlib xinput 测试设备状态是否挂起
如何检查键盘(例如)是否没有挂起?
也许可以向设备发送一些东西并使用 pselect() 检查响应?
我正在使用 xinput 扩展 (1,2) 他们是否为这样的任务提供了一些便利?
c# - C# + SlimDX / XInput - 按下按钮时如何轮询?
我需要与 Xbox 360 控制器交互,而我有限的知识让我卡在 C# 上。我不想为这个简单的事情使用 XNA(并要求用户安装它),所以我使用 SlimDX 来允许我与 XInput 交互。我已经能够检测到所有按钮按下并且小程序正在出现......但我需要知道如何轮询/知道何时按下按钮,然后触发事件。
现在我有一个运行时间为 10 毫秒的计时器,它会检查哪些按钮被按下并据此运行。但是假设您按下 X 一秒钟 = 它检测到 X 被“按下”了 100 次,因为好吧,每 10 毫秒,X 被按下。我只想在按下按钮时触发我的事件,而不必依赖计时器。
在 C# 上可以使用 SlimDX 吗?如果是这样,怎么做?如果没有,是否有更好/更低延迟的 C# XInput 包装器可以满足我的需要?
提前致谢!
c# - Windows UWP 中对 Xbox One 的控制器支持
我想知道我应该如何处理针对 Xbox One 的 UWP 应用程序的输入。我注意到 DirectInput,但我发现它在我的用例中存在两个问题:
从MSDN看来,它似乎只支持 Xbox 360 控制器
XInput 是一个 API,它允许应用程序从 Windows 的 Xbox 360 控制器接收输入。支持控制器隆隆声效果和语音输入和输出。
DirectX 及其所有 API(Direct2d、Direct3D、Xinput 等)仅在 C/C++ 上受支持。这意味着即使 Xinput 支持 Xbox one 控制器,我也无法使用 C# 或 JavaScript 开发真正通用的应用程序。
我有哪些选择(至少就 C# 而言)来支持 Windows UWP 应用上的 Xbox One 控制器支持?
java - Java 虚拟游戏手柄
问题 我正在开发一个自定义硬件控制器,我想在用 Java 处理它之后将它的输入映射到一个虚拟 XInput 控制器。基本上出于所有意图和目的,我想直接从 java 控制 XInput 控制器。
我想到的解决方案
- 编写设备驱动程序,这似乎是我很乐意避免的真正痛苦。我以前从未编写过设备驱动程序,也不知道如何注册 XInput 控制器。这似乎需要很长时间才能完成,我没有也不想花时间。
- 使用 PPJoy 和这个库。我想避免这种情况,因为 PPJoy 已经过时了(自我能找到的上次更新以来已超过 10 年),并且需要一个额外的层来将 DirectInput 转换为 XInput。该库也拒绝为我编译。
- 为VJoy开发一个包装器。然而,这需要从 DirectInput 重新映射到 XInput。我不熟悉 C/C++ 包装,但到目前为止这似乎是最好的选择。
有谁知道如何解决这个问题?我曾考虑跳过 XInput 并使用机器人 (AWT) 使用键盘/鼠标来完成,但游戏拒绝接收软件输入,很可能它们只读取硬件数据。模拟键盘/鼠标会很好,但不是最佳的,因为它会很尴尬,但是我无法找到一种方法来以游戏识别的方式来做到这一点。所有帮助表示赞赏!
x11 - xorg 触摸屏:绝对位置被忽略
我正在尝试使用带有 X (1.14.7) 的 EETI EXC7200 触摸屏。识别触摸屏并处理事件。TS 发送绝对坐标并使用 evdev 驱动程序(绝对模式)。但是,当我移动到屏幕边缘(并且 X 或 Y 达到 0)时,指针会捕捉到窗口的中心。之后任何运动都有一个偏移量(取决于实际位置和角点之间的差异)。
为了测试这一点,我使用 XQueryPointer 的坐标在屏幕上绘制指针。
这是 evtest 的输出:
并且(同时)通过 xinput 翻译输出:
xinput 正在输出位于中心的额外运动事件。但只有当我靠近触摸屏边缘时。
我究竟做错了什么?我应该看什么?感谢您的任何帮助或提示。
c++ - 如何在未聚焦的窗口上接收 XInput 游戏手柄状态?
场景:我已经为我的四轴飞行器编写了一些基本的控制程序。基本上,我使用连接了游戏手柄的笔记本向我的四轴飞行器发送命令,两者都通过无线电相互连接。这个设置工作得非常好,但是:
问题:我的笔记本电脑上运行的 Win32 应用程序如何接收游戏手柄状态更改,即使窗口不在焦点上?我知道像 AutoHotKey 和 AutoIt 之类的一些程序正好提供了这一点,但是我在官方 XInput 文档和互联网上都找不到任何文档。
问题是,我有时也在同一个笔记本上同时使用 ArduPilot 的 Mission Planner 软件。所以每次我想在 Mission Planer 中查看一些遥测数据时,处理游戏手柄内容的应用程序窗口就会失去焦点,并且它停止接收游戏手柄状态变化,这很烦人,而且,老实说,也有点危险,因为我应该一直有一个工作无线电控制器。
那么,有没有办法将游戏手柄 XInput “锁定”到特定的窗口句柄?(Win32) 应用程序是用 C++ 和 Visual Studio 编写的。
编辑:我使用本机 XInput API,因此我使用 XInputGetState()。我的消息循环旨在每次没有要翻译的消息时轮询 XInputGetState()-/DispatchMessage(),并且使用非阻塞 PeekMessage() 轮询 WinMessage。
c# - Xinput1.4.dll 不适用于 UWP 应用
我正在尝试创建一个使用 xinput 的 UWP 应用程序。尝试使用 WPF 应用程序从控制器获取输入,一切都很好。在 UWP 应用程序中尝试相同的代码一无所获。我是做错了什么还是 xinput 真的不适用于 UWP。
c# - 在 Windows 中劫持用户输入
对于我正在制作的程序,我想用我的程序抓取用户的每个输入(包括鼠标移动)并将其转换为假的 xbox 360/One 操纵杆。这是我想玩的游戏所需要的,鼠标和键盘更方便但不可能。
这个想法是;您按下一个键(例如 Scroll Lock),该工具会显示;嘿,我是操纵杆。当您再次按下滚动锁定时,一切都恢复正常。
问题是我正在制作的程序不能成为焦点窗口。一个如何劫持鼠标/键盘输入?将其转换为 xinput 是另一个问题..
c++ - Finnicky #define C++ 中的行为
我已经开始关注手工英雄系列了。他手动加载 XInput,因此创建了一个函数存根。它看起来像这样:
这是在任何其他功能之上定义的。global_variable 是静态的#define。
这段代码几乎可以工作。如果我使用它会成功if (XInputGetState_(ControllerIndex, &ControllerState) == ERROR_SUCCESS)
编译,但在我使用时不会编译if (XInputGetState(ControllerIndex, &ControllerState) == ERROR_SUCCESS)
但是,我可以执行以下操作。
我完全不知道为什么会这样。
你可以在这里找到官方的函数定义
编辑:
只是为了让事情变得更加混乱。XInputSetState 函数也是手动定义的。
然后我可以像这样调用函数
此代码运行和编译没有任何问题;
谢谢您的帮助!
sharpdx - What is the difference between GamepadButtonFlags and GamepadKeyCode in SharpDX.XInput?
I'm adding gamepad support to my app and I'd like to make sure I'm not misusing either of those for determining whether a key has been pressed. What is the purpose of either GamepadButtonFlags
and GamepadKeyCode
? Are there any guidelines for which should be used in certain cases, or are they completely interchangeable?