【问题标题】:Python disable/redirect keyboard inputPython禁用/重定向键盘输入
【发布时间】:2010-10-31 19:18:32
【问题描述】:

我正在用 python 为 xubuntu 编写一个宏生成器/键盘重映射器。

我已经想出了如何拦截和记录击键,并发送我想要记录的击键,但我还没有想出如何阻止击键。我需要禁用键盘输入来重新映射一个键。例如,如果我想在按下“s”键时发送“a”,我目前可以记录“a”键击,并在按下“s”键时将其设置为播放。但是,我不能阻止 's' 击键与它一起发送。

我使用了来自开源键盘记录器的 pyxhook 模块作为钩子,以及来自 python x 库的 xtest 假输入法。

我记得在某处读到有人通过使用 tkinter 将所有击键重定向到不可见窗口来阻止所有键盘输入。如果有人可以发布该方法,那就太好了。

我需要一些可以阻止所有击键但不会关闭我的键盘挂钩的东西。

【问题讨论】:

标签: python keyboard


【解决方案1】:

我有一个检测 X 事件的键盘钩子。我正在寻找一种方法来全局防止将单个键盘事件发送到窗口。通过访问事件队列并从中删除键盘事件来工作的东西将是理想的。看起来应该可以使用 Python Xlib,但我无法弄清楚。

【讨论】:

    【解决方案2】:

    我认为它将在很大程度上取决于环境:curses 和 activestate 配方对命令行很有用,但是如果您希望它在 DE 中运行,则需要一些该 DE 的挂钩。您可能会查看 Python 的 Qt 或 GTK 绑定,或者有一个 python-xlib 库可以让您直接绑定到 X 系统。

    所以我猜答案是“视情况而定”。您是在寻找控制台 noecho 功能,还是用于 DE 的文本替换程序,还是 xmodmap 样式的布局更改器?

    【讨论】:

      猜你喜欢
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-19
      • 2014-01-03
      • 1970-01-01
      • 2014-07-21
      相关资源
      最近更新 更多