在Linux上使用Python拦截和发送按键输入

3
我正在寻找一种在按键信号到达活动应用程序之前拦截所有键盘信号的方法。然后我想解释和映射按键,然后将它们发送到当前活动的应用程序。
Python库会很好,但C/C++也可以。

你可能想要查看各种屏幕保护程序(如xscreensaver)的实现,它们在捕获键盘输入以进行密码输入时本质上执行相同的任务。 - thiton
1个回答

1

我假设你正在使用带有X(org)系统。如果不是,一些东西也可以在evdev级别上完成,但那是另一个故事。

你的问题分为两个部分:

  1. 拦截所有按键事件 -> XGrabKeyboard()
  2. 将按键事件发送到活动应用程序:我会使用libfakekey,它有点hacky hacky(它动态重新映射当前键盘映射的一部分以发送您想要发送的KeySym),但对我有效(小提示,不要忘记生成按下和释放按键事件:p)。

当然,在你的应用程序中抓取键盘时,你必须监听来自X的KeyEvents并从那里发送按键。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接