【问题标题】:Unable to simulate ctrl+shift+left with 'Keyboard' library in Python无法在 Python 中使用“键盘”库模拟 ctrl+shift+left
【发布时间】:2019-10-12 07:10:37
【问题描述】:

我在 Python (https://github.com/boppreh/keyboard) 中使用键盘全局挂钩库来模拟其他应用程序中的按键操作(在文本输入期间,我正在替换单词上的重音符号)。

对于“ctrl+c”或“ctrl+v”等简单组合,一切正常,但我还需要模拟更复杂的组合,最重要的是“ctrl+shift+left”,它本质上是一个“键盘上的 ctrl+shift 和左箭头键(突出显示文本中的最后一个单词)。

有谁知道如何使用上述库在 Python 中做到这一点?甚至没有图书馆?

目前我做这样的事情,首先按 ctrl+shift,按住它,然后通过左箭头键,然后释放 ctrl+shift:

keyboard.press_and_release('ctrl+shift', True, False)
keyboard.press_and_release('left', True, True)
keyboard.press_and_release('ctrl+shift', False, True)

但由于某种原因,这不起作用,它不会突出显示文本中的最后一个单词。 与此相同,这也不起作用:

keyboard.press('ctrl+shift+left')

也不是这样:

keyboard.send('ctrl+shift+left', True, False)
keyboard.send('ctrl+shift+left', False, True)

任何想法如何让它工作?

【问题讨论】:

    标签: python keyboard keyboard-events


    【解决方案1】:

    我找到了一个这样做的库。以下代码是我认为您需要的。不过,您确实需要安装 pynput.keyboard 。在下面的 Youtube 视频中,您可以找到如何做到这一点

    from pynput.keyboard import Key, Controller
    import time
    keyboard = Controller()
    keyboard.press (Key.ctrl )
    keyboard.press (Key.left )
    keyboard.press (Key.shift )
    time.sleep (0.5)
    keyboard.release (Key.ctrl )
    keyboard.release (Key.left )
    keyboard.release (Key.shift )
    

    一个解释这一点的 youtube 视频在这里:https://www.youtube.com/watch?v=DTnz8wA6wpw

    更多键的列表请到这里:https://pythonhosted.org/pynput/keyboard.html#pynput.keyboard.Key`

    抱歉迟到了,祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 2012-10-13
      • 1970-01-01
      相关资源
      最近更新 更多