gpt4 book ai didi

linux - 如何在不在屏幕上书写的情况下捕获键盘输入

转载 作者:太空狗 更新时间:2023-10-29 11:09:51 28 4
gpt4 key购买 nike

我正在为 Debian Linux 编写一个 ANSI C 应用程序,它从 USB 键盘捕获数据并通过 RS232 端口和 LAN(它是某种工业机器)发送一些数据。没有屏幕连接到 PC。我正在使用从“/dev/input/event1”捕获并且一切正常,但在启动计算机后显示系统登录/通过提示并且键盘被我​​的应用程序和系统登录捕获。我的问题是如何禁用系统捕获键盘以进行登录,但保持它与我的应用程序一起运行?

最佳答案

您面临的问题是默认情况下设备的所有输入事件处理程序都会接收所有事件。您的情况至少有两个处理程序:控制台的键盘驱动程序和您的应用程序的 evdev 用户空间接口(interface)。

为避免这种情况,您的应用程序应指示 evdev 模块抓取输入设备以供其独占使用 EVIOCGRAB ioctl。这将阻止任何其他处理程序(包括其他用户空间应用程序)从该设备接收任何事件。

获取设备:

int ret = ioctl(fd, EVIOCGRAB, (void *)1);

释放被抓取的设备:

int ret = ioctl(fd, EVIOCGRAB, (void *)0);

关于linux - 如何在不在屏幕上书写的情况下捕获键盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14415306/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com