在 Linux 上使用 X11/Xorg 时,当您使用xinput
禁用键盘(例如xinput set-prop $ID "Device Enabled" 0
)时,不会发送“key-up”事件(因为您已禁用键盘)。如果您在命令行上输入该命令,这一点很明显,它就像您按住“输入”键一样。这是因为该命令(禁用键盘)在您将手指从 Enter 键上移开之前运行。
这在这个错误(https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/+bug/724280)和这篇博文(http://blog.yjl.im/ 2010/12/using-xinput-to-disable-keyboard-mouse.html)。
我正在编写一个需要禁用键盘的程序,并希望避免这个问题。有什么方法/命令可以“释放当前按下的所有键”(可以在“禁用键盘”命令之后运行)?或者是否有一种命令/方法来“获取所有当前按下的键的列表”以及手动/以编程方式发送“键释放”事件的方法?(这样我可以禁用键盘,查看按下了哪些键,然后“释放”这些键)。
这可能吗?