从硬件级别生成按键,并使用Python捕获输出

从硬件级别生成按键,并使用Python捕获输出,python,Python,我正在为热键应用程序编写一个自动化测试,其中一个挑战是在重新映射一个键后,确定是否按下了正确的键。例如,如果我将Q键重新绑定到A,则当我在键盘上按Q键时,应键入字母A 现在,我希望能够通过脚本执行此操作,而无需手动按下rebinded键。我尝试了pywinauto、keyboard和pynput库,但都没有用;它们只需输入准确的字符,不会发生转换 如何复制: 使用任何热键软件将Q键重新绑定到A(使用任何重新映射/热键工具,例如autohotkey、razer synapse、logitech s

我正在为热键应用程序编写一个自动化测试,其中一个挑战是在重新映射一个键后,确定是否按下了正确的键。例如,如果我将Q键重新绑定到A,则当我在键盘上按Q键时,应键入字母A

现在,我希望能够通过脚本执行此操作,而无需手动按下rebinded键。我尝试了pywinauto、keyboard和pynput库,但都没有用;它们只需输入准确的字符,不会发生转换

如何复制:

  • 使用任何热键软件将Q键重新绑定到A(使用任何重新映射/热键工具,例如autohotkey、razer synapse、logitech setpoint、microsoft鼠标和键盘中心等)

  • 安装python键盘库

  • 在python控制台中运行以下命令

  • 在上面的例子中,Q在热键应用程序中被重新绑定到A,但是代码仍然输出Q


    是否可以发送实际的按键事件,就好像物理按钮被按下(从而触发热键),而Q将键入A?要捕获按键,请按(A)并将其存储在字符串中,以便我可以使用它来断言热键是否已激活。无论我使用什么热键程序重新绑定一个键,代码都应该工作。

    也许你不应该发送一个“Q”,而应该发送一个扫描代码。我上面提到的库只接受普通字符作为其各自按键方法的参数。请提供一个。添加的复制步骤sas@ThomasWeller说,您需要生成键盘扫描码(这是键盘生成的)并将其输入热键应用程序,就像它们来自实际的物理键盘一样。
    >>> import keyboard
    >>> keyboard.press_and_release('Q')
    >>> Q