问题标签 [input-devices]
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.
c - 在 C Linux 上检查某个 USB 端口以获取设备 fd
我正在编写一个程序来检查每一个/dev/input/eventX
并使用 ioctl 我可以获得它的功能并检查它是什么(鼠标、键盘、触摸屏)。
现在我需要检查某些 USB 输出(端口)是否连接了设备,我打开它并执行与 . 相同的操作/dev/input/eventX
。我发现一些符号链接/sys/bus/usb/devices/
似乎是关于 USB 端口的存储信息,但我不确定。我尝试用它打开它,libudev
但它会查找子系统“USB”中的所有文件,但我只需要举例/sys/bus/usb/devices/3-2/
我需要的:
- 检查某些 USB 端口(仅限我在定义中硬编码的端口,或通过命令行传递的端口)
- 如果设备已连接,请打开 dev 的 fd 并使用 ioctl 获取信息
- 如果它(例如鼠标)程序开始工作,否则它说找不到设备......
我不需要完整的代码就足以描述如何做到这一点。
只需要普通的 C 就可以使用像 libudev 这样的库
c# - 从 c# 访问 2 个相同的扫描仪
我有一个 USB 扫描仪,我通过制造商提供的 DLL 连接和使用它。
这些是我用来访问它的功能:
所以在 C# 中,我会像这样访问扫描仪:
我首先将当前表单的句柄传递给扫描仪,然后打开一个连接。然后继续使用 IDScan 开始扫描。最后我控制表单的 WndProc 寻找扫描完成的代码,最后使用关闭与扫描仪的通信
一切正常,但我正在尝试将第二台扫描仪连接到计算机。我似乎无法找到一种方法来选择与之交流的人。
如果两者都已连接,则通信将转到最后一个使用的通信。如果我把那个关掉,程序就会与另一个通信。
有任何想法吗?
android - 过滤真实输入设备
我正在尝试通过以下方式获取已连接游戏手柄的列表:
一般来说,它应该只返回游戏手柄,但对于我的 Nexus TV,这个块可以找到另外 2 个设备,它们都是同一类型的:
有趣的事实:虽然这些设备显然是虚拟的,但 callInputDevice.isVirtual()
对它们都返回 false。
因此,最简单的解决方案是mLocation
根据InputDevice
. 幸运的是,InputDevice
有公共方法来检查它。不幸的是,此方法InputDevice.isExternal()
被标记为隐藏,因此不可用。
有没有其他方法可以过滤掉这些虚拟设备而不通过反射访问隐藏的方法/字段?
linux-kernel - linux内核如何找到所有注册到鼠标的IRQ?
我是内核黑客的新手,我想知道是否有办法找到 HID 鼠标驱动程序已在内核中注册的所有 IRQ。
编辑** 我需要知道如何在仅给定可能的 input_values 的情况下找到正确的 irq。另一个被认为是重复的问题是关于在给定 irq 的情况下获取处理程序,这不是我想要的;我实际上是在寻找 irq 本身。
ms-access - 将数据从磁扫描仪插入 MS Access 输入字段时的子字符串
我正在使用 MS Access 应用程序来存储客户数据。所有数据都存储在 SQL DB 中。输入字段之一用于存储带有磁条的卡的 ID 号。我没有输入长数字,而是购买了 USB 磁性扫描仪。扫描仪可以工作,但在我扫描卡后,它会在字符串的前后给出不想要的字符的卡号,例如#1234567890123456789012345 -1-1-1#。我怎样才能摆脱额外的字符,在第 2 个和第 26 个字符之间只留下 25 个字符。
c - 除了 /dev/input/eventx 之外,还有基于更高级别(字符?)的方式来访问 Linux 键盘吗?
我正在尝试编写一个需要从类键盘(HID)设备获取输入的 Linux 守护程序 - 它不是控制台键盘,而是第二个设备(如果它有任何区别,它实际上是一个一维条形码扫描仪)。守护进程将处理它接收到的数据(来自字母数字条形码的“击键”)。
我知道守护进程可以使用 ioctl(EVIOCGRAB) 从 /dev/input/eventx 中获取该设备,然后读取()事件(来自 <linux/input.h> 的 struct input_event),这是可行的,但对我来说它的级别太低了需要。我不需要知道每个上下键事件,我宁愿不必解码/处理同时键,即我不想知道 KEY_DOWN+KEY_RTSHIFT、KEY_DOWN+KEY_A、KEY_UP+KEY_RTSHIFT、KEY_UP+KEY_A ,我只想收到“A”。
使用输入事件需要编写一大堆额外的代码,只是为了从中得到“A”——当几乎可以肯定现有的键盘处理程序(或类似的东西)会这样做时,这似乎是浪费时间和精力比我一起破解代码做得更好——我就是找不到它们!
有什么方法可以将现有的(键盘?)软件层放到 /dev/input/eventx 上,然后守护进程可以从中独占读取简单的 ascii 流?
对于此设备,/proc/bus/input/devices 报告...
...这可能表明某些东西已经在其上放置了“kbd”层,但是如何访问它呢?
如果我不使用 EVIOCGRAB,那么当我扫描条形码时,我会看到有关“在 /dev/tty1 上登录失败”的系统日志,因此键盘输入显然是在尝试登录某个终端/外壳:-/(没有 X,这台机器上的桌面等。)
android - 实用地连接到 HID 键盘设备作为 android 中的输入设备
我有 HID BLE 键盘,通常当我想在 android os 环境中连接到它时,我转到蓝牙页面,搜索它然后点击键盘名称并连接到它。
现在我想知道我是否可以编写一个自动查找设备然后将其作为输入设备连接的应用程序?
我已经阅读了有关 Android 中 BLE 通信的文档,但没有一个没有解释如何连接 HID 键盘,因为输入设备看起来像 android 本身连接到它。
virtualbox - 鼠标按预期移动,但无法选择或单击(最近更新后)[Arch Linux on Virtualbox]
在打开的Arch Linux
VM 中Virtualbox
,鼠标存在并按预期移动,但无法选择或单击。这是更新后的最近行为。
根据这篇文章,它可能与ZAxisMapping
设置有关(需要6 7
代替4 5 6 7
)。我在两个文件中找到了这个参数:
- /lib/Xorg
- /lib/xorg/modules/input/mouse_drv.so
但是,这些文件不可编辑。有没有什么办法解决这一问题?
谢谢
android - 如何在 android 中检查或匹配 InputDevice deviceid 和 UsbDevice deviceid?
我正在获取所有附加设备列表.. 带有 ID
当我匹配 InputDevice ID 和 UsbDevice Id 时,我得到不同的 ID。
注意:我得到了所有正确的信息,如产品名称、供应商 ID 等。
但我的问题是我的板上连接了多个鼠标。我无法获取单击了哪个鼠标。
我的鼠标点击代码
我在这里得到不同的设备 ID。
我怎样才能知道点击了哪个鼠标