- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我已经成功设置了一个小程序来创建一个uinput我计划使用它来自动测试接收键盘输入事件的应用程序。
我关注了both tutorials在这个非常好的answer中找到.
当我的程序通过调用 ioctl(fd, UI_DEV_CREATE)
创建 uinput 设备时,一个新设备出现在文件系统中,因此我的测试应用程序可以附加到它并等待事件。我的目标系统已经有一个 /dev/input/event0
设备,因此新设备获取路径 /dev/input/event1
。如果我为我的桌面系统编译并运行该程序,其中存在现有设备 /dev/input/event[0-15]
,当程序运行时,新设备将获得 /dev/input/event16
.
我希望我的程序在创建新设备名称后报告它。有办法得到吗?
最佳答案
是的,您可以使用 UI_GET_SYSNAME
(在 /usr/include/linux/uinput.h
中定义)如果它在您的平台上可用(例如,Android由于某种原因没有定义它)。它将为您在 /sys/devices/virtual/input
中创建的设备命名。一旦您知道sysfs 中的设备,您就可以通过阅读this SO question 找出在/dev/input
中创建的设备。 .
像这样调用 UI_DEV_CREATE
后使用它(省略错误/完整性检查):
ioctl(fd, UI_DEV_CREATE);
char sysfs_device_name[16];
ioctl(fd, UI_GET_SYSNAME(sizeof(sysfs_device_name)), sysfs_device_name);
printf("/sys/devices/virtual/input/%s\n", sysfs_device_name);
如果它不可用,您可以尝试在 /proc/bus/input/devices
中查找 sysfs 设备,其中应该包含如下条目:
I: Bus=0006 Vendor=0001 Product=0001 Version=0001
N: Name="your-uinput-device-name"
P: Phys=
S: Sysfs=/devices/virtual/input/input12
U: Uniq=
H: Handlers=sysrq kbd mouse0 event11
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0 0 7ffff ffffffff fffffffe
B: REL=143
..这有点困惑。但如您所见,它还会为您提供在 /dev/input
中创建的设备的快捷方式。
关于c - 如何获取 uinput 创建的设备的名称(路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34064047/
我正在尝试编写触摸事件。我正在使用相机跟踪手部,因此我需要两个指针并且需要显示它们。 这是我尝试过的方法,但它什么也没做: import uinput import time device = uin
我试图在 Raspberry Pi 论坛上问这个问题,但我根本没有收到任何回复。我想我可能会询问过去很有帮助的 StackOverflow 社区的想法。 我正在为使用 bcm2835 库 (GPIO)
我在通过 uinput 设备事件文件模拟鼠标事件时发现了一个问题。 我可以用 'struct input_event' 结构格式为键盘/鼠标事件编写事件,但只有键事件工作正常,鼠标事件不工作 我启用了
我非常努力地寻找 uinput 的文档,但我唯一找到的是 linux/uinput.h。我还在互联网上找到了一些教程,但根本没有文档! 例如,我想知道 UI_SET_MSCBIT 的作用,但我找不到任
import uinput device = uinput.Device([uinput.KEY_LEFTCTRL, uinput.KEY_LEFTALT, uinput.KEY_T]) device
我试图通过将数据写入/dev/uinput 来控制 Android。例如,如果我在桌面上输入“A”,代码会根据 key_code 向 uinput 写入一些内容,而 Android 应该表现得像我在手
我正在用 python-uinput 做一些测试模拟一些按键,但我找不到动态调用 uinput.emit() 的方法。我的意思是,例如,我想从文件中获取字符并为每个字符调用 uinput.emit()
大家好,感谢阅读。 我正在尝试使用 uinput 界面来执行一些操作。最终,这些数据将通过 UART 从串行连接进行解释。 我可以打开、关闭等 uinput,它适用于单点触控。 EV_KEY BTN_
我尝试在没有触摸屏的安卓设备上注入(inject)事件。我正在使用用户空间输入设备 (uinput) 这样做,但它不起作用。 我正在使用这段代码: fd_virtual_dev = open("/de
我在使用 uinput 使代码的两侧 工作时遇到了一些问题。 基于 Getting started with uinput: the user level input subsystem [死链接;
我想让 uinput 出现在 h1 标签中的 Hello 一词之后。它应该显示他们在上一页中添加的用户名。 va
我已经成功设置了一个小程序来创建一个uinput我计划使用它来自动测试接收键盘输入事件的应用程序。 我关注了both tutorials在这个非常好的answer中找到. 当我的程序通过调用 ioct
我正在为 Android 开发 Synergy 端口(参见 synergy-foss.org)。 我发现注入(inject)击键的唯一方法是使用 Cyanogen Mod 并将击键写入/dev/uin
我正在尝试确保 uinput 正在运行/加载并且它有效。 我无法使用 lsmod 找到设备,但是我可以找到文件/dev/uinput,这是什么意思? 我通过一些谷歌搜索找到了一些代码,这些代码显然是在
我正在尝试使用绝对坐标移动光标。这是代码: #include #includ
我正在尝试使用/dev/uinput 和 ioctl 在 Android 上移动光标鼠标。 这是我的代码: int fd = -1; struct input_event ev; int uinput
我正在尝试在 Debian Stretch 上做一个带有 uinput 的虚拟键盘,我可以输入字符串,比如“Toto!”,键盘会写入这个字符串。但是,我一直坚持从 C char 到键盘处理的键码的转换
目前有什么方法可以在 SBCL 中使用 uinput 内核模块吗?我自己找不到任何图书馆(除了一些日本人 [?] 人的 github:https://github.com/quek/info.read
我正尝试在 Ubuntu 上使用 python 从 PS3 Controller 读取数据,但运气不佳。我从 Willow Garage (http://www.ros.org/wiki/ps3joy
我一直在使用以下 C 代码来尝试在 CentOS 6.0 机器上模拟击键: #include #include #include #include #inlcude #include #i
我是一名优秀的程序员,十分优秀!