24

我想拥有一个可能已经插入的隐藏设备,使用它的输出,同时防止其他人(X11 或终端)使用它。

如果我能帮上忙,我不想假装自己是一个终端,而是要垄断一个特定的隐藏或字符设备。这个想法是,某些隐藏设备可能会被 x/终端识别为鼠标/键盘,但第二个鼠标或键盘可以用于其他用途,但要做到这一点,您需要确保它们不会将虚假输入发送到打开终端。

有没有人知道如何做到这一点?

4

1 回答 1

26

我已经这样做了——我的特定应用程序是一个从 USB HID 条形码阅读器(呈现为 USB HID 键盘设备)读取事件的守护程序。

为此,我使用了事件设备接口,打开了/dev/input/event*与我所追求的设备相对应的设备。然后,您可以EVIOCGRAB在设备上发出 ioctl,获取它以供独占使用,并在设备可用时从设备中读取事件(表示按键、鼠标移动等)。

(当设备被抓取以供独占使用时,只有您的应用程序会看到其中的事件)。

于 2009-11-09T01:34:42.567 回答