Не правильно работает pynput

from pynput import keyboard
from pynput.keyboard import Key, Controller
from tkinter import Tk
import webbrowser
#импорт модулей
print('programm is activated')

def copy_text():
    print('робит')
    keyboard = Controller()
    keyboard.release('d')
    keyboard.release('в')
    keyboard.release(Key.ctrl)
    keyboard.release(Key.alt)

    keyboard.press(Key.ctrl)
    keyboard.press('c')
    keyboard.release('c')
    keyboard.release(Key.ctrl)
    webbrowser.open_new_tab(f'https://ya.ru/search/?text={Tk().clipboard_get()}') #открытие браузера со скопированной ссылкой
    
with keyboard.GlobalHotKeys({
        '<ctrl>+<alt>+d': copy_text,
        '<ctrl>+<alt>+в': copy_text,}) as h: #хоткеи
    h.join()

Я нажимаю ctrl + alt + D и программа открывает браузер с выделенным текстом из любой другой программы, но почему после я могу нажимать ctrl + alt, и программа всё равно открывает новую вкладку с выделенным текстом.


Ответы (1 шт):

Автор решения: Fox Fox

Этот код нуждается в тестировании и проверке, разбирайтесь. Безграмотность тоже исправлена:

from pynput import keyboard
from pynput.keyboard import Key, Controller
from tkinter import Tk
import webbrowser

# импорт модулей
print('Программа активирована!')

# Создаём экземпляр Controller
kb_controller = Controller()

def copy_text():
    print('Работает...')
    kb_controller.release('d')
    kb_controller.release('в')
    kb_controller.release(Key.ctrl)
    kb_controller.release(Key.alt)

    kb_controller.press(Key.ctrl)
    kb_controller.press('c')
    kb_controller.release('c')
    kb_controller.release(Key.ctrl)

    # Переход по скопированной ссылке в браузере:
    root = Tk()
    root.withdraw()
    webbrowser.open_new_tab(f'https://ya.ru/search/?text={root.clipboard_get()}')

# Горячие клавиши:
with keyboard.GlobalHotKeys({
        '<ctrl>+<alt>+d': copy_text,
        '<ctrl>+<alt>+в': copy_text}) as h:
    h.join()
→ Ссылка