我可以直接通过 USB 与键盘和鼠标等输入进行通信吗?

我可以直接通过 USB 与键盘和鼠标等输入进行通信吗?

设置鼠标或键盘按钮来模拟在 Windows 中左键单击并按住或快速重复左键单击?

我在梦中想到了这个 tripleClicker 想法,而我的实现更像是鼠标的涡轮按钮。现在我可以使用 autokey 或 autohotkey。但我想知道软件是如何做到这一点的。

我在 Linux 上,你能帮我将鼠标左键单击发送到鼠标吗?我可以直接将其发送到 /dev/input/event3 吗?

有没有办法模拟这个信号,或者这太冗长了。USB 上的实际信号是十六进制吗?

事件:时间 1540772345.223443,类型 4 (EV_MSC),代码 4 (MSC_SCAN),值 90001 事件:时间 1540772345.223443,类型 1 (EV_KEY),代码 272 (BTN_LEFT),值 0 事件:时间 1540772345.223443, -------------- SYN_REPORT ------------

PS 我如何获取时间在我的计算机上显示:真实 0m0.000s 用户 0m0.000s 系统 0m0.000s

这更像是一个计时器时间 -a 增加时间 -p 重置它是一个秒表命令。

这样做的目的是为了在 LMMS/GIMP 中解决这个问题,这样我就不必尝试制作画笔工具,而是它会反复单击以模拟画笔或点画效果。

答案1

整理各种内核层:USB 层会将您的鼠标识别为 HID(人机接口设备)设备,并使用 HID 描述符自动将 USB 事件转换为输入事件(您在 上看到的事件/dev/input/eventX)。然后,这些输入事件由 X 驱动程序 读取evdev,并转换为 X 事件(或者,如果您使用的是 Wayland,则可以通过 执行类似操作libinput),然后由 GIMP 等进行解释。

您只需写入 即可/dev/input/eventX模拟事件。 格式在struct内核源包含文件(include/uapi/linux/input.hinclude/uapi/linux/input-event-codes.h)中描述。evtest对其进行翻译,因此您也可以将其与 进行比较hexdump -C /dev/input/eventX

您还可以使用各种工具模拟 X 事件。但无法模拟 USB 事件。

该时间是事件发生的时间,而不是处理时间(使用 获得的时间time)。

相关内容