Бывает такое, что необходимо вставить текст туда, где не предусмотрена возможность вставки текста.
Не работает Ctrl+v и нет других способов вставить скопированный текст.
Например, это может быть удаленный рабочий стол Windows или терминал сервера, расшареный в браузере или просто Вы подключились к консоли KVM.
Я попал в такую ситуацию, мне надо было ввести длинный текст в консоль KVM и я сделал себе утилиту, которая позволят это делать. Она умеет вставлять любой одно-строчный текст в такие "неудобные места", эмулируя нажатие клавиш на клавиатуре.
Я не проверял его работу в Windows или Mac, я работаю в Ubuntu. Вот тут можно почитать подробнее и допилить для работы с Вашей OS.
Спешу поделиться с сообществом инструментом, который выручил меня.
Его очень легко использовать, достаточно скрипту указать нужный текст и задержку в секундах, чтоб успеть установить курсор.
Вот ссылка на github, там сам код, ман по установке и использованию.
https://github.com/viktor-gorinskiy/prints/blob/main/static/demonstration.gif
Комментарии (25)
bungu
04.04.2022 21:47+2Не работает Ctrl+v
про Shift+Insert слышали?
skozharinov
04.04.2022 22:13как минимум в браузерном noVNC не работает, он тупо отправляет нажатия клавиш на сервер
krylov_sn
05.04.2022 10:54тоже хотел предложить - часто блокируют именно правую кнопку мыши и Ctrl+V, остальное - нет
Andrey_Solomatin
05.04.2022 00:36Не аккуратно, опечатки. Не стоит торопиться показывать такой код.
Это видимо копипаста, откуда не нужно. six==1.16.0
Andy_U
05.04.2022 00:46+2Например, это может быть удаленный рабочий стол Windows
В remote desktop нужно всего-лишь галочку в настройках поставить. И не только copy-paste в обе стороны будут работать, но еще с удаленной машины можно поиметь доступ к дискам локальной.
dartraiden
05.04.2022 01:17+1Даже с галочкой вы не сможете вставить пароль, скажем, на экране входа в Windows. Там не предусмотрена вставка в принципе.
Andy_U
05.04.2022 01:36В remote desktop'е Вы же вводите credentials в своей машине?
Ash666 Автор
05.04.2022 01:57Я не понтмаю к чему вы ведёте?
Я как и многи знают про то, что можно поставит нужные галочки в клиенте rdp и там-же можно укзать пары логин/пароль домен и тд.
Я сам лично пользуюсь Remmina и мне не приходилось ни когда вручную вводить пары логин/пароль при старте системы.
Запустите у себя что-нибудь от имени администратора из под гостевой учетной записи и попробуйте вставить логин и пароль.
Andy_U
05.04.2022 02:14Я не понтмаю к чему вы ведёте?
Я просто обратил внимание на неточность в Вашей фразе.
Запустите у себя что-нибудь от имени администратора из под гостевой учетной записи и попробуйте вставить логин и пароль.
Нет у меня гостя. Но, из соображений секьюрности, наверное, Вы правы. А ваш скрипт кстати, сработает (если его из-под гостя запустить)? Если да, а не дыра ли это в системе безопасности Windows?
dartraiden
05.04.2022 09:40Бывают изредка случаи, когда подключаться приходится локально через расширенный сеанс Hyper-V. Оно работает примерно как RDP, но учётные данные уже нужно вводить на удалённой машине, а не на своей.
Andy_U
05.04.2022 09:48Не сталкивался. Но и в Virtualbox, и в vmvare workstation можно воспользоваться их системным меню, если не в полноэкранном режиме.
dartraiden
05.04.2022 09:50+1Ещё бывают случаи, когда виртуалка на базе XP, при таком раскладе учётные данные не запрашиваются на хосте и приходится либо вводить руками на экране входа гостя, либо писать костыли типа
cmd /c "cmdkey /generic:TERMSRV/192.168.1.103 /user:user /pass:p@ssw0rd && start /b mstsc /v:192.168.1.103"
В общем, Hyper-V это такая боль в заднице.
dartraiden
05.04.2022 01:20+1Я не проверял его работу в Windows
Нормально (собрал в исполняемый файл с помощью Pyinstaller). Давно собирался что-то подобное себе сделать, но руки не доходили.Ash666 Автор
05.04.2022 02:01Спасибо! Добавлю в статью, что в windows тоже работает.
Значит я не зря писал статью!
SquareRootOfZero
05.04.2022 16:56Подобный подход ещё помогает при заполнении всяких дурацких веб-форм, например: копи-паст как бы есть, но только в каждое поле по-отдельности, а полей этих сто пятьсот. Хранишь все данные в обычном текстовом файле, типа cvs, например, и пишешь простенький скрипт с pyautogui, pynput и т. п., который всё, что нужно прокликает, наберёт или скопипастит.
amarao
man
xdotool
skozharinov
не работает под wayland
EDIT: решение автора, похоже, тоже
EDIT2: работает с XWayland
amarao
... Если бы это было наибольшее из того, что не работает под wayland... /сарказм
Я погуглил, говорят, есть https://github.com/atx/wtype, но я даже близко к нему не подходил (потому что моя видеокарта не wayland, а апгрейд ещё только где-то на горизонте).
skozharinov
погуглил, вроде как протокол virtual-keyboard пока не поддерживают ни GNOME, ни KDE.
видимо, Wayland, а вместе с ним и год Linux'а на десктопе настанет ещё не скорою
amarao
Ну, я, например, сижу на циннамоне и мне уйти трудно (я пытался). :/ Плюс видяха не умеет. Плюс, плюс, плюс...
С одной стороны точная уверенность мейнтенеров, что X мертвы, с другой стороны потребительское наблюдение, что wayland ещё не полностью втянут во всё.