设置鼠标或键盘按钮来模拟在 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.h
和include/uapi/linux/input-event-codes.h
)中描述。evtest
对其进行翻译,因此您也可以将其与 进行比较hexdump -C /dev/input/eventX
。
您还可以使用各种工具模拟 X 事件。但无法模拟 USB 事件。
该时间是事件发生的时间,而不是处理时间(使用 获得的时间time
)。