Не удается выделить текст в pynput

1

Я пишу скрипт python, используя библиотеку pynput, в которой я хочу выбрать текст определенной длины.

Для этого я сначала нажимаю shift, а затем нажимаю многократную клавишу со стрелкой влево. Чтобы текст оставался выбранным курсором, его можно использовать и для копирования.

Вот мой код:

from pynput import keyboard
from pynput.keyboard import Controller

keyboard_controller = Controller()
with keyboard_controller.pressed(keyboard.Key.shift_l):
    keyboard_controller.press(keyboard.Key.left)
    keyboard_controller.release(keyboard.Key.left)
    keyboard_controller.press(keyboard.Key.left)
    keyboard_controller.release(keyboard.Key.left)
    keyboard_controller.press(keyboard.Key.left)
    keyboard_controller.release(keyboard.Key.left)

Это перемещает мой курсор влево на 3 шага, но даже если сдвиг нажат, текст не будет выбран. Что мне здесь не хватает?

Редактировать:

ОС: Windows 10

Окружающая среда: Python 3.6.5

Вот демонстрация того, что происходит в моем коде vs. Изображение 174551

Теги:
pynput

1 ответ

0

Может, попробовать?

from pynput.keyboard import Key
from pynput.keyboard import Controller

keyboard = Controller()

Опция 1:

with keyboard.pressed(Key.shift):
    keyboard.press(Key.left)
    keyboard.release(Key.left)
    keyboard.press(Key.left)
    keyboard.release(Key.left)

Вариант 2:

keyboard.press(Key.shift)
keyboard.press(Key.left)
keyboard.release(Key.left)
keyboard.press(Key.left)
keyboard.release(Key.left)
keyboard.release(Key.shift)

Вариант 3:

keyboard.press(Key.shift.value)
keyboard.press(Key.left.value)
keyboard.release(Key.left.value)
keyboard.press(Key.left.value)
keyboard.release(Key.left.value)
keyboard.release(Key.shift.value)

Вот видео-доказательство, что оно работает на моей машине :)

Изображение 174551

  • 0
    Не работает. В чем разница между этими двумя? Я думаю, что нет никакой разницы вообще.
  • 0
    Согласно документации: «Будут установлены только общие модификаторы; при нажатии Key.shift_l, Key.shift_r или Key.shift будет присутствовать только Key.shift». поэтому моя идея заключалась в том, что Controller не видит состояние Key.shift_l, и вместо этого я использовал общий Key.shift. Хотя и не работает ...
Показать ещё 11 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню