14.06.2014 12:17
OlegON
 
Простая задача по отсылке нажатия клавиши в окно. Использоваться может для миллиона задач по автоматизации. У меня была простая - не дать отключить по бездействию сеанс RDP, где шел экспорт. Как и все остальное в Linux традиционно просто.
Код:
emerge xdotool
Код:
watch -n 120 xdotool type --window `xdotool search --onlyvisible --class xfreerdp` -
данная строка раз в 120 секунд посылает в окно xfreerdp (можно и другое окно, но в этом варианте оно единственное этого класса) нажатие "-", можете окно блокнота открыть и посмотреть... Окно не обязательно должно быть активным, т.е. просто запускаете и продолжаете заниматься своими делами на другом workspace. Если символьное мешает, можно посылать key вместо type, например.
Собственно, можно и man xdotool почитать, там много дополнительных возможностей.
14.06.2014 12:43
OlegON
 
Кстати, хранитель экрана у меня при этом нормально работает.
22.10.2014 15:49
OlegON
 
Выяснилась проблемка. Почему-то xdotool не работает с VirtualBox. По крайней мере не получается послать в окно виртуалки ничегошеньки, даже выбирая окно вручную или по PID.
Тут же нашлось и решение, сам VirtualBox отлично с этим справляется.
Например, послать в виртуалку Esc
Цитата:
VBoxManage controlvm Виртуалка keyboardputscancode 01 81
обратите внимание, что коды передаются в hex, более того, один код - нажатие клавиши, другой - ее отпускание. На отпускание код соответствует коду нажатия + 0х80.
26.09.2016 22:24
OlegON
 
Небольшая поправка.
Класс окна можно посмотреть xwininfo, но у xfreerdp он теперь мутный, поэтому проще искать --title и задать заголовок в параметрах xfreerdp
06.03.2021 12:57
OlegON
 
Для виртуалки QEMU решение аналогичное
Код:
sudo virsh send-key Domain --holdtime 1000 KEY_L
посылает нажатие L на 1 секунду в виртуалку Domain
например, как я себе делал, чтобы дебилов, блокирующих мне экран, успокоить
Код:
watch -n 120 sudo virsh send-key FedoraSmall --holdtime 10 KEY_LEFTCTRL
Часовой пояс GMT +3, время: 11:45.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.