Python禁用/重定向键盘输入

时间:2009-06-05 22:51:06

标签: python keyboard

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

我已经想出如何拦截和记录击键,并发送我想要记录的击键,但我还没弄清楚如何阻止击键。我需要禁用键盘输入来重新映射一个键。例如,如果我想在按's'键时发送'a',我现在可以录制'a'按键,并在按's'键时将其设置为回放。然而,我不能保持's'按键与它一起发送。

我使用开源键盘记录器中的pyxhook模块作为钩子,再次使用python x库中的xtest伪输入法。

我记得通过使用tkinter将所有击键重定向到不可见的窗口来读取有人阻止所有键盘输入的内容。如果有人可以发布那种很棒的方法。

我需要一些可以阻止所有击键的东西,但是不要关掉我的键盘钩子。

2 个答案:

答案 0 :(得分:1)

我认为这将严重依赖于环境:诅咒& activestate配方适用于命令行,但如果你想让它在DE中运行,你需要一些挂钩到那个DE。你可能会看一下python的Qt或GTK绑定,或者有一个python-xlib库可能让你直接进入X系统。

所以我猜答案是“这取决于”。您是在寻找控制台noecho功能,还是DE或Xmodmap风格的布局转换器的文本替换程序?

答案 1 :(得分:0)

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