python3:如何使用pynput按Ctrl X(剪切)和Ctrl V?

新手上路,请多包涵

pynput 文档 之后,我尝试将其“剪切”:

1:在编辑器中选择一些文本

2:使用快捷方式运行 this_code.py(不离开活动窗口)

 from pynput.keyboard import Key, Controller
keyboard = Controller()
with keyboard.pressed(Key.ctrl):
    keyboard.press('x')
    keyboard.release('x')

python控制台打开居然打印:^X。键的组合是正确的,但它没有做它应该做的事情:剪切选定的文本并将其存储在剪贴板中。 (我不想将剪贴板内容存储在变量中,我想要 Ctrl+C)

我想这个answser也会解决剩下的部分:Ctrl+V(过去一些将首先插入剪贴板的数据)

原文由 J. Does 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2k
1 个回答

我考虑了三件事:

  • 因为我在 Mac 上,组合是 Command+X 而不是 Ctrl+X

  • 如果我使用 keyboard.press 我只能让它工作(按下对我不起作用,不知道为什么)

  • 对于特殊键,我必须使用它们的 Key.value(因此,Key.ctrl 变为 Key.ctrl.value;Key.Shift 变为 Key.Shift.value …)

最后,这对我有用:

 # I tested this code as it is in Mac OS
from pynput.keyboard import Key, Controller

keyboard = Controller()

# keyboard.press(Key.ctrl.value) #this would be for your key combination
keyboard.press(Key.cmd.value)
keyboard.press('x')
keyboard.release('x')
# keyboard.release(Key.ctrl.value) #this would be for your key combination
keyboard.release(Key.cmd.value)

尽管这个问题有点老了,但我遇到了同样的问题并找到了适合我的解决方案。将来可能会对某人派上用场。

原文由 Pedro 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题