pynput не отправляет ctrl + c для копирования выделенного текста - PullRequest
0 голосов
/ 08 мая 2020

Я использую python 2.7 на 64-битной Win7. Вот код, который просто заменяет каждый выбранный text на <h1>text</h1>. pynput-1.6.8 используется для глобальных горячих клавиш и нажатия клавиш, а pyperclip-1.7.0 используется для обработки буфера обмена.

Но я обнаружил, что на самом деле ctrl + c вообще не нажимается.

В чем проблема? Спасибо

from pynput.keyboard import Key, Controller, GlobalHotKeys
import pyperclip

# initilize the clipboard to null
pyperclip.copy('')

keyboard = Controller()

def on_activate_h():
    print('<ctrl>+<alt>+h pressed')

    # copy current text to clipboard
    # but in fact, it does not on my PC
    # why
    keyboard.press(Key.ctrl)
    keyboard.press('c')
    keyboard.release('c')
    keyboard.release(Key.ctrl)

    txt = pyperclip.paste()
    if txt:
        keyboard.type(f'<h1>{txt}</h1>')

def on_activate_i():
    print('<ctrl>+<alt>+i pressed')

with GlobalHotKeys({
        '<ctrl>+<alt>+h': on_activate_h,
        '<ctrl>+<alt>+i': on_activate_i}) as h:
    h.join()

...