问题标签 [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.

0 投票
1 回答
810 浏览

usb - 如何检测使用 USB HID API 推送的游戏手柄触发器?

当按下游戏手柄按钮并检索游戏手柄状态时,我使用 RawInput + Windows USB HID API 接收 WM_INPUT 消息。

有一个问题:两个触发器在同一轴上工作,这意味着您无法确定是否同时按下了两个触发器。启动 OS Windows 游戏手柄测试应用程序时,我观察到相同的行为。但我需要区分这两个按下的按钮。

请注意,XInput 可以按需要工作,它为两个触发器提供了两个轴,但我不想使用 XInput,因为它仅适用于 XBox 控制器,而且世界上有许多非 Xbox 控制器。

我想一定有一种方法可以通过 USB HID API 读取两个轴,但直到现在我都找不到它。你解决了这个问题吗?

游戏手柄:使用 Xbox 360(但应支持任何其他)。

操作系统:Windows 7。

IDE:Visual Studio 2010。

语言:C++

0 投票
0 回答
814 浏览

gtk - Gnome 双击触摸屏

我无法在 Surface Pro 3(Fedora;内核 4.28;Gnome 3.18,Gtk3)上双击工作。在 Gtk+ 中,两次快速连续点击不会转换为2button事件。请参阅下面的小型 Python 程序,它适用于普通鼠标或触摸板。

我已经检查了敲击时间和敲击距离不是问题,正如您在程序中看到的那样。这个问题可能出自哪里?GDK_TOUCH_MASK?

为了澄清,按钮事件被接收,但从未转换为2button事件

0 投票
2 回答
3484 浏览

c++ - Linux 中 XInput* 函数的等价物是什么?

我正在将使用 Xbox 控制器的应用程序移植到 Linux。在 Windows 上,它基本上只是用于XInputGetState()读取控制器的状态,所以我正在寻找 Linux 上该功能的替代品。

我看到wine还没有实现XInputGetState(),但是同时有大量的游戏支持Linux上的Xbox手柄,所以是可行的。

有谁知道可以使用哪个库与 Linux 上的 Xbox 控制器进行交互?

0 投票
2 回答
4189 浏览

c++ - 如何获取游戏控制器名称(Windows 10 / C++)

我已经看到很多关于如何使用 XInput 读取游戏控制器输入的信息,但我真的很想知道连接的控制器的名称。

游戏控制器

如何找到 PC 上连接的控制器的名称,或者更具体地说,我正在从中读取 XInput 的控制器的名称?

0 投票
1 回答
446 浏览

ubuntu - 用于禁用设备的 systemd 服务无法启动

我为我的笔记本联想 x230 平板电脑编写了禁用手指触摸的脚本。我想在启动时运行它,所以我使用 systemd 服务在启动时触发这个脚本,但是我什至无法手动启动这个脚本。有什么帮助吗?

脚本

这是此服务的状态命令的输出

0 投票
1 回答
1339 浏览

c++ - 使用 g++ 编译 C++ XInput

我得到了 __in & __out 的没有在这个范围错误中声明。

我使用下面的语法 g++ Joypad.cpp -IC:\DirectSDK\Include -LC:\DirectSDK\Lib\x86 -lXinput -o Joypad

我也试过 g++ Joypad.cpp -IC:\Windows SDK~um,shared, etc -LC:\Windows SDK\Lib -lXInput -o Joypad

有什么我错过的吗?我使用 mingw x86_64

包括的目录:Windows Kits 8.1 (um,shared,winrt) Microsoft DirectX SDK

包括的库:XInput.lib - C:\Progra~2\Micros~4\Lib\x86

0 投票
1 回答
106 浏览

touch - 两个 xscreens uinput 多点触控设备,第二个 x 屏幕上的坐标错误

首先嗨,这是我在stackoverflow中的第一个问题:)

硬件设置是 2 个 nvidia gtx980 GPU,每个 GPU 连接到 3 个显示器。拼接墙布置为一排 6 台显示器。我们正在使用专有的 nvidia 驱动程序。xserver 版本是 1.15.1 (7.7)。

我们创建了一个 uinput 多点触控 ABS (MT) 设备,该设备连接到与核心指针不同的主设备。ABS_X 和 ABS_MT_POSITION_X 的最大值和最小值根据两个 xscreen 的大小 (0, 11520 - 1) 设置。这是使用 xinput list [device id] 检查的。

由于我们使用了两个 GPU,我们无法创建一个大的 xscreen,但我们安排了 2 个 xscreen(每个 GPU 一个),每个 xscreen 上对齐了三个显示器。

问题出在第二个 xscreen (xscreen1) 上。当我们发出 x 坐标高于 5760(第一个 xscreen 的大小)的触摸事件时,xserver 会在远处的 x 坐标上报告点(可能在第二个 xscreen 的末尾或更远)。我们已经从 xscreen0 开始检查了这一点并移至第二个。y 坐标得到正确报告(因为两个 xscreen 都是 y 对齐的)。

虚拟多点触控设备的校准矩阵是单位矩阵。如果将 uinput 设备创建为 ABS 单点设备(我猜像 wacom 数位板),则 x 坐标将正确报告。

我认为问题可能出在 evdev 或 xserver 内部(因为我已经阅读了在服务器内部而不是在 evdev 中校准的新版本)。如果是这种情况,任何关于这可能发生在哪里的提示都会很棒。如果不是这种情况,任何帮助都将受到高度赞赏。

0 投票
2 回答
3769 浏览

c# - C# | SharpDX.X输入 | 如何检测控制器上的按钮是否被按下一次并且没有被按住

最近我尝试创建一个 XBOX 360 控制器驱动程序。我需要检测是否按下或按住按钮。因此,如果您按住它,它也会调用一次特定功能,就像您按下按钮一次一样。这是我的代码(我在另一篇文章中找到了这个解决方案,但它对我不起作用)

使用此代码,您仍然可以按住按钮,它会向点击函数或正在调用的任何内容发送垃圾邮件。

我还尝试使用“按下”布尔值,按下时设置为真,不按下时设置为假。并且它仅在“按下”== false 时调用。

也没有用。

你对这个问题还有其他解决方案吗?

对不起,如果这是一个不好的问题。我阅读了问题的规则和提示,并搜索了重复项,但除了我得到第一个解决方案的那个之外,没有找到任何重复项。

0 投票
0 回答
609 浏览

linux - 为什么 XInput 不能在 X-treminal 中工作?

我尝试通过 app xinput显示键盘事件。我在三个工作站上尝试。起初两个工作站(在本地 X 会话中)都很好:

获取设备列表:

设备事件:

但!我从 X-terminal x2go连接到三个工作站(从 Windows 7 连接)。而在这个工作站 xinpunt 并没有实现它的功能。Xinput 找不到设备并显示段错误:

问题 1:如果从 X-terminal 连接到 X-server 稳定,xinput原理不起作用?还是标准 X11 应用程序中的错误?

问题 2:如果从 X 终端(x2go)连接,如何替代获取全局键盘事件(按下和释放键)?

环境:
来自连接:Windows 7 Pro,来自站点 x2go.org 的官方 X2GO 客户端。
要连接:Debian 7.8、LXDE、来自站点 x2go.org 的官方服务器 X2GO。

0 投票
1 回答
6378 浏览

c++ - xInput 中的键盘和鼠标设备支持

XInput 库功能是否支持处理来自连接的键盘和鼠标的事件?

我知道它支持处理来自 xInput 兼容控制器的事件,但不清楚是否还包括键盘和鼠标输入处理。我在 MSDN XInput 页面上没有看到任何关于支持它的信息,所以我不这么认为,但我想确定一下。因此,如果我想为使用 XInput 兼容控制器或鼠标和键盘的用户启用对软件的控制,我是否需要在使用 XInput 处理控制器输入的同时使用 Windows 消息系统分别处理鼠标和键盘事件?

感谢您的任何反馈!