标签: xinput

如何使程序找到xinput设备的id并设置xinput一些设置

我有一台G700鼠标连接到我的电脑.这个鼠标在Linux(Ubuntu)中的问题是灵敏度非常高.我也不喜欢鼠标加速,所以我制作了一个脚本来关闭它.脚本看起来像这样

#!/bin/bash
# This script removes mouse acceleration, and lowers pointer speed
# Suitable for gaming mice, I use the Logitech G700.
# More info: http://www.x.org/wiki/Development/Documentation/PointerAcceleration/
xinput set-prop 11 'Device Accel Profile' -1
xinput set-prop 11 'Device Accel Constant Deceleration' 2.5
xinput set-prop 11 'Device Accel Velocity Scaling' 1.0
xinput set-prop 12 'Device Accel Profile' -1
xinput set-prop 12 'Device Accel Constant Deceleration' 2.5
xinput set-prop 12 'Device Accel Velocity Scaling' 1.0
Run Code Online (Sandbox Code Playgroud)

G700鼠标的另一个问题是它在xinput中显示为两个不同的设备.这很可能是因为鼠标有无线适配器,并且通常也通过USB电缆连接(用于充电).这是我的输出xinput --list(参见id 11和12):

$ xinput --list …
Run Code Online (Sandbox Code Playgroud)

shell xinput

18
推荐指数
3
解决办法
2万
查看次数

Windows UWP中对Xbox one的控制器支持

我想知道我应该如何处理针对Xbox One的UWP应用程序的输入.我注意到了DirectInput,但是对于我的用例,我看到了两个问题:

  1. MSDN,它似乎只支持Xbox 360控制器

    XInput是一个API,允许应用程序从Xbox 360 Controller for Windows接收输入.支持控制器隆隆效果和语音输入和输出.

  2. DirectX及其所有API(Direct2d,Direct3D,Xinput等)仅在C/C++上受支持.这意味着即使Xinput支持Xbox one控制器,我也无法使用C#或JavaScript来开发真正的通用应用程序.

在Windows UWP应用程序上支持Xbox One控制器支持,我有哪些选项(至少就C#而言)?

c# xbox xinput xbox-one uwp

16
推荐指数
1
解决办法
8443
查看次数

将XInput调用转换为MAC OS X上的DirectInput调用(从PS3模拟x360控制器)

很多游戏都在使用x360控制器,但没有正确映射到PS3 DS3控制器......

MotionInJoy使用"模拟360控制器"进行清理,但它仅适用于PC.还有另一个仅限PC的项目:x360ce:https://code.google.com/p/x360ce/

这是一个问题:mac os x有什么解决方案吗?如果没有,为什么!

macos controller ps3 directinput xinput

14
推荐指数
1
解决办法
2612
查看次数

linux/X11中的"无缝"多用户会话

目标

我希望拥有一个多用户系统(基于Linux),只使用一个带有多个屏幕的X11会话和一对鼠标和键盘.因此,两个(或更多)人可以使用相同的计算机共享不仅相同的硬件而且共享相同的"屏幕"(当然,它将被分成两个物理屏幕,但您可以将窗口移动到您的伙伴身上. ..).共享窗口不仅可以更方便地"显示"您的合作伙伴您所做的事情 - 如果用户A开始使用复杂的应用程序处理某些事情(断言保存文件并打开它们不方便另一个会话)将应用程序的窗口移动到用户B应该就像在自己的屏幕中移动窗口一样简单.这就是我称之为"无缝"多用户会话的原因.

可能的解决方案

我在这篇文章中读到了X11"多座位",它没有我想要的功能.它为每个用户使用会话而不是一个会话.

我发现XI2又名Xinput2,它提供了多指针支持.这允许具有由两只小鼠控制的两个单独的鼠标指针.我读到你可以为两只鼠标分配两个键盘,提供独立的焦点和文本输入.但我想知道剪贴板("真实"和"鼠标中键"剪贴板)是否也被单独处理......我发现只有少数关于XI2多指针功能但没有"现场报告"的信息.

另一个完全不同的想法是在计算机上有两个独立的X11会话,但在两个会话之间使用X11-forward共享窗口.但是:据我所知,你不能共享一个转发X11的窗口,以便用户A运行一个应用程序,当它运行时,将窗口发送给用户B.据我所知,只有用户B可以在硬件上运行一个应用程序用户A并在其自己的X11会话上显示窗口.那也不是我想要的......或者我错了,可以在应用程序启动后通过X11转发转发窗口吗?

编辑:我刚刚发现XPRA类似于X11转发,但允许从/向X11会话分离和附加正在运行的应用程序.我现在试一试.

完成任何其他想法?

linux x11 xinput

9
推荐指数
1
解决办法
2726
查看次数

使用Python模拟XBox控制器输入

我希望我的python程序模拟XBox控制器输入.如果可能,两个模拟拇指杆和开/关按钮.

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

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

python xbox directinput xinput

8
推荐指数
1
解决办法
8378
查看次数

如何使用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++

usb xbox hid xinput gamepad

6
推荐指数
1
解决办法
465
查看次数

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

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

游戏控制器

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

c++ windows xinput

6
推荐指数
1
解决办法
3576
查看次数

C++头文件中的大小写敏感性

我是一个完整的noob当涉及到C++,我一直劈砍而去的摩埃试图增加对通过一个Xbox 360手柄的支持XINPUT.当我包含XInput的标头时,有两个选项:

  1. XINPUT XINPUT

  1. XINPUT XINPUT

此外,为了使用XInput我需要包括windows.h.我见过的所有示例都使用以下语法:

#include <windows.h>
Run Code Online (Sandbox Code Playgroud)

但是Visual C++ Express 2010中的自动完成插入

#include <Windows.h>
Run Code Online (Sandbox Code Playgroud)

WINDOWS.H

在XInput/Xinput的情况下,似乎区分大小写很重要,但在Windows.h的情况下似乎并不重要.

包含头文件时区分大小写是否重要?这有什么逻辑吗?

XInput的区别只是存在一个被调用的东西的标题XInput和另一个叫做的东西Xinput吗?

c++ windows case-sensitive header-files xinput

5
推荐指数
1
解决办法
4803
查看次数

从触摸屏中激活Chrome中的触摸事件

我有一台带有24英寸触摸屏的Ubuntu机器,它工作正常.我可以移动鼠标,做几个触摸点的手势等硬件工作正常.现在我想知道是否可以让浏览器解释触摸事件,而不是mousedown,mousedrag等.HTML5对触摸和多点触摸有很好的支持,我想为这个设置开发Web应用程序.有没有人知道如何做到这一点?我试过启用--enable-touch-events切换没有成功.似乎这只是在ms windows版本中实现的.

~$ xinput -version
xinput version 1.6.0
XI version on server: 2.2

~$ xinput
? Virtual core pointer                      id=2    [master pointer  (3)]
?   ? Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
?   ? Advanced Silicon S.A CoolTouch(TM) System id=9    [slave  pointer  (2)]
?   ? USBest Technology SiS HID Touch Controller    id=10   [slave  pointer  (2)]
?   ? Logitech USB Optical Mouse                id=11   [slave  pointer  (2)]
?   ? MCE IR Keyboard/Mouse (nuvoton-cir)       id=14   [slave  pointer  (2)]
? Virtual core keyboard …
Run Code Online (Sandbox Code Playgroud)

ubuntu google-chrome touchscreen xinput chromium

5
推荐指数
1
解决办法
5714
查看次数

如何以不推荐的方式访问Windows上的游戏杆?

我想编写一个访问操纵杆的Windows应用程序。这只是一个非常简单的应用程序,它读取值并将其发送到服务器,因此我没有使用任何游戏编程框架。但是,我对使用哪个API感到困惑。

我看了看多媒体操纵杆API,但这被DirectInput取代了。因此,我看了DirectInput,但不赞成使用XInput。但是XInput文档仅讨论Xbox360控制器,并说它不支持“旧版DirectInput设备”。

Microsoft是否已将整个HID游戏杆使用类型委托给垃圾箱,并放弃了对它们的支持以支持其专有的控制器产品,还是我错过了什么?

windows xinput joystick

5
推荐指数
1
解决办法
782
查看次数

从后台捕获按键

我正在尝试编写一个 bash 脚本来监视键盘上的特定按键,并在检测到它们时运行命令。我目前可以使用输入命令来执行此操作,但前提是运行它的终端位于前台。我需要让它在窗口未聚焦时工作。

我已经考虑过使用 xinput test-xi2 --root 来获取每个事件,这似乎工作得很好,但我不确定如何有效地将输入转换为对我有用的关键定义。

这是我当前的程序:

while true; do
    read -rsn1 input
    if [ "$input" = "a" ];
    then
        #Do Something
    fi
done
Run Code Online (Sandbox Code Playgroud)

上面的代码可以工作,但只能在前台运行。

任何帮助将不胜感激!

bash input keypress xinput

5
推荐指数
1
解决办法
2307
查看次数

是否可以获得 XInput 设备的名称、产品 ID、供应商 ID 或某种其他类型的唯一标识符?

通常,XInput 控制器仅使用与控制器的玩家编号相对应的索引来识别。有没有办法获取有关具有特定索引的控制器的更多信息,例如其供应商 ID、产品 ID 或设备名称?

更好的是唯一且一致地对应于该控制器的标识符,以便可以将其与所有其他 XInput 设备区分开来,无论其索引如何,包括具有相同型号(即相同产品和供应商 ID)的另一个控制器,类似于使用 DirectInput 可获得实例 GUID。

这可以使用 XInput 或其他 Microsoft API 来完成吗?如果需要的话,我也愿意使用未记录的函数。

windows xinput

5
推荐指数
2
解决办法
2160
查看次数

我需要一些帮助来了解 USB 游戏控制器(HID 设备)

我对这个奇怪的标题表示歉意,但这是我现在能想到的最好的标题。我有一个项目,正在构建一个用作游戏控制器的 HID 设备。我正在考虑模拟该控制器,以便它在 Windows PC 上显示为 Xbox 360 控制器。有一个不错的 API,称为 XInput API,用于游戏,以便它们可以使用 360 控制器。我想利用这一点。

我目前正在研究如何对微控制器进行编码,使其在 PC 上显示为 360 度控制器。我确实有一些问题,希望在该领域具有更多专业知识的人可以帮助我。

1) 我正在研究 HID 标准。我想知道,是否有一个专门为游戏控制器指定的 HID 标准的单独子类,我可以使用它与 XInput API 兼容?或者至少,HID 标准中是否有关于游戏控制器的规定?

2)我在这里找到了有关如何使用 XInput API 的文档:https://learn.microsoft.com/en-us/windows/desktop/xinput/getting-started-with-xinput

现在,我想知道是否有任何文档指定如何使 HID 设备兼容 XInput API,或者我是否会进行一些逆向工程,使用 API 来指导如何对微控制器进行编码?

3) 最后,是否有关于 PC 用于与 Xbox One 控制器通信的 API 的文档?或者它仍然是 XInput API?或者是 Gamepad 类(https://learn.microsoft.com/en-us/uwp/api/windows.gaming.input.gamepad

感谢您花时间阅读本文,期待您的回复!

usb xbox360 hid xinput xbox-one

3
推荐指数
1
解决办法
1万
查看次数