监视Ubuntu中的键盘键
Monitoring Keyboard keys in Ubuntu
可能的重复:
如何在Ubuntu 中的后台进程中获取数据
我正在编写一个程序,用于监视键盘上按下的键。但我的程序可能在前台或后台运行。我听说有一个特定于操作系统的系统调用,即使运行系统调用的程序在后台,程序员也可以监控键盘活动。我是Ubuntu编程的新手,所以请有人告诉我操作系统的调用是什么。
注意:此计划仅用于教育目的。这是学校项目的一部分。。
问候
大多数Ubuntu系统(至少是Ubuntu新手的桌面系统)都运行X11窗口服务器(比如Xorg)。该服务器(仅)正在获取原始键盘和鼠标设备输入。它处理它们以将X11协议事件传递到客户端应用程序(例如,您的firefox浏览器、emacs
编辑器、gnome或xterm
终端)。
你可以花时间(几个月)了解所有这些(也许从免费桌面开始)。你也可以切换到其他项目,也许只是使用Gtk(在Gnome中)或Qt(在KDE中)编写一个有趣的GUI应用程序。所有Linux图形工具包库都构建在与X11协议(通常是Xlib或XCB)接口的库之上。
如果你想开始学习Linux编程,请阅读高级Unix编程和高级Linux编程。之后,需要花费大量时间来理解tty-s的奥秘,并熟悉系统调用(2)。然后熟悉像Qt或GTK这样的图形工具包。
然后你就会开始明白,准确地回答你问得不多、可疑的问题有多难。(答案在很大程度上取决于观点——Xorg
看到的关键事件与其他应用程序不同,尤其是X客户端,并且非常复杂)。
一旦你理解了我给你的链接中的所有概念,你就可以更准确地提出你的问题。当你用更精确和技术性的术语重新问你的问题时(特别是解释你想监控键盘和鼠标的级别),展示你实验过的代码,我们将能够(并且愿意)回答你。
听说有操作系统特定的系统调用:你是从谁那里听到的?你问他们了吗?
这需要多个调用,您需要使用ioctl
(在Ubuntu上可能不同)将记录器推入终端流。这并不简单,也不适合作为一个刚开始的项目。有关示例,请参见script
程序。
有一个适用于linux的程序,它绑定全局热键并在按键时执行预定义的操作。它被称为xbindkeys
。在它的源代码中查找建议或直接使用它
- 在Ubuntu 16.04上安装Cilk时出现问题
- 物理键盘上的触发器按键
- 如何使用C/C++在MacOSX中获得键盘布局
- 如何在Ubuntu中使用cmake设置qt4
- 链接阶段在Ubuntu上失败,但在MacOS上失败
- 无法将 GLFW 库与 Ubuntu 18.04 上的头文件链接
- 无法在Ubuntu上将共享库与Eclipse链接
- 树莓上的 Libtorch 无法加载 pt 文件,但在 ubuntu 上工作
- 视窗键盘输入 c++
- 无法安装 R 包 "nloptr"(Ubuntu 16.04 上的 R3.6.2) - C++编译器问题
- 使用 ubuntu 终端在 c++ 上运行线程类的问题
- 将鼠标和键盘输入发送到 unity3d 游戏 (Rust)
- 如何在 Ubuntu 上安装 OpenCV for C/C++
- C ++异步键盘输入(标准方式)
- 估计 Ubuntu C++内存使用情况
- 键盘不起作用 - Arduino Uno - 与变量有关的多个错误
- 如何在 Ubuntu 中通过语音命令生成键盘、鼠标事件
- 捕获Linux/Ubuntu(屏幕捕获 鼠标/键盘事件)中的窗口事件
- 监视Ubuntu中的键盘键
- 尝试在 Ubuntu Linux 中构建全局键盘挂钩时出错