我有兴趣为linux编写一个程序,它将读取所有击键,处理它,然后输出到其余正在运行的进程。本质上,所有的键盘输入都必须进入这个程序,而且只有这个程序……然后这个程序将充当计算机其余部分的键盘。我基本上想在Android设备上做一些类似预测文本的事情,所以我的程序将充当过滤器。我要问的基本上是如何将所有键盘事件定向到我的程序。虽然我不是在寻找代码,但我想知道我必须学习linux编程/linux系统的哪一部分才能完成这项任务?这是因为我这样做是为了更好地学习Linux。 最佳答案 您不应该修改键盘驱动程序,因为这将要求您为每个键盘制造商
我正在制作一个小应用程序,它需要知道用户闲置了多长时间——例如,没有使用键盘或鼠标。XCB和Xlib都promise通过各自的屏幕保护程序扩展给我空闲时间。这是我使用XCB获得空闲时间的地方:#include#include#includestaticxcb_connection_t*connection;staticxcb_screen_t*screen;/***ConnectstotheXserver(viaxcb)andgetsthescreen*/voidmagic_begin(){connection=xcb_connect(NULL,NULL);screen=xcb_set
我正在制作一个小应用程序,它需要知道用户闲置了多长时间——例如,没有使用键盘或鼠标。XCB和Xlib都promise通过各自的屏幕保护程序扩展给我空闲时间。这是我使用XCB获得空闲时间的地方:#include#include#includestaticxcb_connection_t*connection;staticxcb_screen_t*screen;/***ConnectstotheXserver(viaxcb)andgetsthescreen*/voidmagic_begin(){connection=xcb_connect(NULL,NULL);screen=xcb_set
我有一台以多用户模式运行的服务器,它连接到键盘和显示器。在另一台计算机上,我想通过SSH连接到服务器并运行一个程序,该程序从键盘捕获输入并将文本打印到显示器。键盘和显示器绝不会用于任何其他目的。现在,当服务器启动时,(文本)登录屏幕会显示在监视器上。我知道我可以写入相应的/dev/tty设备。但是,键盘也会写入同一个地方。如何捕获键盘事件并将监视器用作Linux上的文本显示?我可能遗漏了一些有关Linux上硬件接口(interface)的基础知识。我需要知道什么?赏金时间用完了——如果有人想进一步充实这个,我会相应地奖励:我做了以下操作来阻止任何登录程序启动:systemctlmask
我有一台以多用户模式运行的服务器,它连接到键盘和显示器。在另一台计算机上,我想通过SSH连接到服务器并运行一个程序,该程序从键盘捕获输入并将文本打印到显示器。键盘和显示器绝不会用于任何其他目的。现在,当服务器启动时,(文本)登录屏幕会显示在监视器上。我知道我可以写入相应的/dev/tty设备。但是,键盘也会写入同一个地方。如何捕获键盘事件并将监视器用作Linux上的文本显示?我可能遗漏了一些有关Linux上硬件接口(interface)的基础知识。我需要知道什么?赏金时间用完了——如果有人想进一步充实这个,我会相应地奖励:我做了以下操作来阻止任何登录程序启动:systemctlmask
我一直在尝试使用python将我的自定义事件绑定(bind)到具有特定事件代码编号的键盘事件,如下所示ctypes.windll.user32.keybd_event('0x24',0,2,0)但是你已经知道了windll该库仅适用于Windows操作系统。我怎样才能在Linux机器上做这样的事情?我读过CDLL('libc.so.6')但我不知道这个库是否有用?是否有另一种方法可以使用虚拟键码在操作系统级别使用python设置按键监听器? 最佳答案 Linux输入子系统由三部分组成:驱动层、输入子系统核心层和事件处理层。而键盘或其
我一直在尝试使用python将我的自定义事件绑定(bind)到具有特定事件代码编号的键盘事件,如下所示ctypes.windll.user32.keybd_event('0x24',0,2,0)但是你已经知道了windll该库仅适用于Windows操作系统。我怎样才能在Linux机器上做这样的事情?我读过CDLL('libc.so.6')但我不知道这个库是否有用?是否有另一种方法可以使用虚拟键码在操作系统级别使用python设置按键监听器? 最佳答案 Linux输入子系统由三部分组成:驱动层、输入子系统核心层和事件处理层。而键盘或其
我正在用C编写一个Linux程序,我需要拦截某些键盘敲击。使用输入子系统(读/写/dev/input/eventX),我可以接收键盘敲击(使用“读”功能)或模拟键盘敲击(使用“写”功能)。当使用“读取”功能时,我可以捕获用户的键盘敲击,但是这个事件被传播了,我不知道如何使用它。 最佳答案 默认情况下,输入事件会传输到所有监听的应用程序和驱动程序。但是,可以让应用程序通过evdev接口(interface)获取设备-查看EVIOCGRABioctl()。这将只允许该特定应用程序从该特定设备接收事件。该方法的问题在于您实际上无法阻止特定
我正在用C编写一个Linux程序,我需要拦截某些键盘敲击。使用输入子系统(读/写/dev/input/eventX),我可以接收键盘敲击(使用“读”功能)或模拟键盘敲击(使用“写”功能)。当使用“读取”功能时,我可以捕获用户的键盘敲击,但是这个事件被传播了,我不知道如何使用它。 最佳答案 默认情况下,输入事件会传输到所有监听的应用程序和驱动程序。但是,可以让应用程序通过evdev接口(interface)获取设备-查看EVIOCGRABioctl()。这将只允许该特定应用程序从该特定设备接收事件。该方法的问题在于您实际上无法阻止特定
我最近将一个122键终端键盘转换为USB作为configfsUSB小工具(键盘部分使用HID代码),它工作得很好,除了我似乎无法让我的Archlinux安装识别某些HID代码(特别是目前F13-F24)并将它们翻译成我可以在X中使用的事件代码。正确接收HID代码我可以通过/dev/hidraw2看到计算机正在接收HID(下面的输出是按F24时,HID代码0x73基于:https://gist.github.com/MightyPork/6da26e382a7ad91b5496ee55fdc73db2。sudohexdump-C/dev/hidraw2000000000000000000