问题标签 [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 回答
3544 浏览

c# - 如何在 Python ()WITHOUT PYGAME) 中使用 XInput 来嗅探控制器上的按钮按下?

几天来,我一直在论坛上搜索,试图找到一种从 XInput 控制器中嗅探 XInput 的方法。我还没有找到任何方法来检测按钮是否被按下,并且大多数论坛帖子都是关于模拟棒的。我也想在没有 PyGame 或笨重的外部模块的情况下实现我的目标。我需要做的就是检测控制器上的 A、B、RB(右保险杠)和 D-Pad 按钮何时被按下,当它们被按下时,运行一些代码。我希望能够区分按下了哪个按钮,而不仅仅是按下了按钮这一事实,因为我需要将这些输入转换为 VK 代码以添加对某个游戏的控制器支持(我知道已经有应用程序为此,但我想制作一个在单个脚本中并且体积较小的脚本。)

另外,如果这在另一种语言中比 Python 更容易,请无论如何解释。我只说 Python 是因为我比其他人更了解这种语言。另外,我的编码经验很少,请记住这一点。

0 投票
1 回答
21907 浏览

python - 使用 Python 模拟 Xbox 控制器输入

我希望我的 python 程序模拟一个 Xbox 控制器输入。如果可能的话,模拟拇指棒和开/关按钮。

我找到了有关在 python 中使用 ctypes 模拟键盘输入的主题,例如这里: Python 模拟 keydown

是否可以模拟它类似于普通键盘或鼠标上的“keydown”?

0 投票
1 回答
827 浏览

gamepad - 如何发送 XInput 按钮?

我想向游戏发送一个按下按钮的信号,并且我已经阅读了MSDN中的 API 。

但是那里的 API 仅提供获取游戏手柄状态而不向 PC 发送信号的功能。

谁能帮我?

0 投票
1 回答
1288 浏览

x11 - 通过 xfce4 校准触摸屏

亲爱的专家 我在 x-server 上校准 Penmount 触摸屏时遇到问题。我通过 tslib 连接。在 X 中,我有一个已编译的 xf86-input-tslib 库。不幸的是,ts_calibrate 不适用于“非法指令级别触摸工作良好,它的响应很好,但有时,点击发生在屏幕上的错误位置,有时会出现偏差。我尝试使用 xinput-calibrator 校准屏幕,但是xinput -list 中没有触摸屏:

虽然在内核中:

在 Xorg.0.log 我发现了这个:

我可以为触摸做些什么将出现在 xinput --list 中?
Debain,内核 3.14

0 投票
1 回答
629 浏览

touchscreen - 如何在linux中区分两个具有相同pid/vid的usb触摸屏设备

如何在linux中区分两个具有相同pid/vid的usb触摸屏设备我有两个相同的usb触摸屏设备。我想在启动计算机时使用它们而不会出错。所以我需要使用“xinput map-to-output”来区分它们。但是,它们几乎相同。它们具有相同的 PID/VID、相同的供应商、相同的制造商和相同的名称。

Xinput 映射到输出 .XID 有时会发生变化,并且 shell 并不总是有用的。XID交换时不知道如何解决。任何有关如何解决此问题的建议表示赞赏。

0 投票
1 回答
3608 浏览

ubuntu - 哪个 xinput 设置会反转鼠标滚轮的方向?

我正在尝试遵循这个问题的建议,使用xinput工具为我的鼠标滚轮启用自然滚动。

我通过列出我的输入设备$ xinput list并获得以下信息:

相关设备是Dell Dell USB Optical Mouse id=14. 我通过列出该设备的属性$ xinput list-props 14,并获取

我可以更改其中哪些(如果有)来反转滚轮方向?

我尝试Evdev Axis Inversion (306)通过 command 调整属性$ xinput set-prop 14 306 1, 1,但这显然是针对鼠标移动方向,而不是滚轮方向 - 我不得不将其更改回来。

这些xinput设置中的任何一个是否会反转滚轮方向?如果没有,那么也许我需要尝试另一种方法。我的操作系统是 Ubuntu 16.04.2 LTS。

0 投票
0 回答
142 浏览

linux - 获取 XKeyPressedEvent 对应的硬件扫描码

我正在开发一个开源项目来添加我需要的东西。它使用 XInput 系统从键盘获取输入,我无法更改它。但是,对于按键,我需要获取硬件扫描码,就像这里列出的那样。有没有办法从XKeyPressedEvent到这些KEY_*扫描代码input-event-codes.h,以了解以独立于布局的方式按下了什么键?

0 投票
0 回答
492 浏览

ubuntu - Steam 和 X11/Xorg:Steam 覆盖自定义配置?

我正在运行 Lubuntu 16.04,xboxdrv 版本 0.8.6(从 gi​​t存储库构建,因为 0.8.5 是 Ubuntu 存储库中可用的版本),使用官方 Microsoft Xbox 360 有线控制器,并运行官方版本的 Steam对于 Linux。

xorg/x11 存在一个问题(我不确定这里更正确的名称,因为我对 Linux 很陌生)默认情况下操纵杆将具有鼠标控制。从Ubuntu 论坛上的这个线程,这可以通过创建来解决/usr/share/X11/xorg.conf.d/50-joystick.conf

这解决了问题,并将防止发生以下情况:

移动左拇指杆时,它也会发送EV_KEY事件(KEY_LEFT向左移动时等)。

移动右手拇指棒时,会发生不同的事情,具体取决于方向:

  1. 向上移动右摇杆将鼠标光标移动到 LEFT,
  2. 向下移动右摇杆将鼠标光标移动到 RIGHT,
  3. 向左移动右摇杆似乎无济于事,
  4. 向右移动右摇杆 RIGHT CLICKS。

扣动左扳机时,似乎没有什么奇怪的事情发生,

扣动右扳机时,鼠标光标向下移动;释放时,鼠标光标然后向上移动,并将继续直到 xboxdrv 停止,

最后,方向键似乎没什么奇怪的。

也就是说,直到 Steam for Linux 启动。一旦 Steam 加载并启动,上面的一切都会发生,就好像50-joystick.conf从未创建过一样。一旦 Steam 关​​闭并重新启动 xboxdrv,游戏手柄就会按预期工作。

当 Steam 运行时,所有东西也会发送正确的事件(触发器、摇杆等),因为它们在视频游戏中工作,控制器被检测为游戏手柄。此外,这些额外的事件似乎不会在游戏中发生,只有在游戏失去焦点时才会发生。

附带说明一下,当通过 Wine(通过 PlayOnLinux)运行 Steam 时,不会发生这种情况。我不知道控制器是否适用于通过 Wine Steam 安装和启动的任何游戏(我已经设置了 koku 的 xinput 库,遵循这个reddit 线程;它适用于 GOG Spelunky),但是。

Steam 是否有任何可以防止或逆转的修改 xorg/x11 的内容?

0 投票
1 回答
95 浏览

c++ - 获取对 XIChangeProperty 的未定义引用

我正在编写一个 C++ 程序来监视一个值并更改我的笔记本电脑上触摸板和跟踪点的启用状态。除了调用 XIChangeProperty 之外,我一切正常。当我运行 make 时,它​​会抛出

如果我 #include <X11/extensions/XInput.h>从源中删除,它会引发不同的错误。

我的cmake文件如下

我不确定我缺少什么会导致 XIChangeProperty 显示为未定义。

编辑:回购已被删除(现在)删除链接,因为它已经死了

0 投票
0 回答
728 浏览

c++ - Windows.Gaming.Input.Gamepads 不起作用?

我有 Windows 10 Creators Update 并且正在编写一个 UWP C++ 应用程序。我已尝试使用 C++/WinRT 和 C++/WRL,似乎 Windows.Gaming.Input.Gamepads 只是拒绝看到我的有线 XBOX 360 控制器和我的 Logitech XBOX 360 风格的游戏控制器。两者都很旧,但它们确实作为 XBOX 360 控制器出现在设备管理器中,并且都可以与其他游戏一起使用。我有 XInput,但 XInput 只能看到 Logitech,而不能看到 Microsoft 控制器。我原以为更新的 API 会选择它们。但这是疯狂的部分。两个控制器都可以在 Microsoft.Minecraft 中正常工作,这是一个 Windows 商店应用程序,因此,根据商店规则,我认为只支持 XInput 和 Windows.Gaming.Input.Gamepads。所以问题是,真的,他们可以使用什么 API 来识别两个操纵杆,以及为什么不