【问题标题】:Ctrl + c / Ctrl + v with memory effectCtrl + c / Ctrl + v 带记忆效果
【发布时间】:2021-12-06 11:27:26
【问题描述】:

我认为,它有时会极大地改善您的工作流程,如果您 可以ctrl + c(复制)一个系列。

也就是说,当按下ctrl +c时,内容存储在内存中 直到ctrl + v 释放内存中的所有字符串。 (假设一开始,我只复制字符串)。

我想使用pynput,但也欢迎任何其他解决方案,这就是我所取得的成就:

from pynput import keyboard

current = set()


class memory_class(object):
    def __init__(self):
        self.memory = []
        return None
    def add_element(self,element):
        self.memory.append(element)
    def clear_memory(self):
        self.memory = []

memory = memory_class()


def execute():
    print("Hello ! C has been pressed.")
    memory.add_element("Hello")

def on_press(key):
    if any([key in COMBO for COMBO in COMBINATIONS]):
        current.add(key)
        if any(all(k in current for k in COMBO) for COMBO in COMBINATIONS):
            execute()

def on_release(key):
    if any([key in COMBO for COMBO in COMBINATIONS]):
        current.remove(key)

# The key combination to check
COMBINATIONS = [
    {keyboard.Key.ctrl, keyboard.KeyCode(char='c')},
    #{keyboard.Key.shift, keyboard.KeyCode(char='A')}
]

with keyboard.Listener(on_press = on_press, on_release = on_release) as listener:
    listener.join()
  • 如何访问使用ctrl + c 时通常复制的文本。功能 on_press 总是只依赖于被按下的键。
  • 如何实现另一种方法ctrl + v,从内存中粘贴所有内容,然后将其删除。

【问题讨论】:

    标签: python hotkeys pynput


    【解决方案1】:

    如果你使用 tkinter

    Tk().clipboard_get()
    

    或者使用库,pyperclip

    import pyperclip as pc
      
    number = 100
      
    # copying text to clipboard
    pc.copy(number)
      
    # pasting the text from clipboard
    text = pc.paste()
      
    print(text)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-29
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      相关资源
      最近更新 更多