如何让 python 检测键盘的击键并根据 Windows 中的输入键发送不同的字符串

Posted

技术标签:

【中文标题】如何让 python 检测键盘的击键并根据 Windows 中的输入键发送不同的字符串【英文标题】:How do I get python to detect keystrokes from the keyboard and send different strings based on the input key(s) in windows 【发布时间】:2012-09-18 23:16:09 【问题描述】:

我正在尝试编写一个复制 Autohotkey 功能的脚本,因为它对我来说效果不佳。我需要脚本来检测程序的键盘/鼠标单击输入,并根据按下的原始键发送不同的字符串/击键序列。例如,如果我按下鼠标中键,我想发送三个击键 8,9 和 0 来代替单击。所有这些都是在使用其他一些应用程序时进行的。即火炬之光II。谁能告诉我

    使用什么来获取全局键盘输入和 如何将击键发送到应用程序?

我会为此使用 Autohotkey,但它的行为非常不可靠,带有随机的不可接受的错误。我正在使用 python 2.7 64bit,windows 7。

【问题讨论】:

你可以试试SendKeys。 Sendkeys 不适用于 Python 2.7 几天前为我工作。 sendkeys-ctypes 这个有效。认为你是这个意思。谢谢。下一阶段是键盘,鼠标事件挂钩。有什么建议吗? 【参考方案1】:

我找到了解决方案并完成了脚本。这是我的发现。

1.我从 Pyhook 获得了全局键盘/鼠标输入。在 Python 2.7 amdx64 上安装它可能有点棘手。

2.为了向应用程序发送击键/输入,我使用了与 python 2.7 配合良好的 sendkeys-ctypes

【讨论】:

以上是关于如何让 python 检测键盘的击键并根据 Windows 中的输入键发送不同的字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何等待特定的击键?

使用 pynput 键盘检测小键盘键

Python键盘库不抑制Linux上的击键

如何修复“忽略的击键”

如何对 NSUndoManager+UITextInput 的击键进行分组

如何在 Windows 上使用 C++ 监听终端外的击键