
Мне, к сожалению, приходится использовать эту фирменную программу, которая связывает драйвер камеры. Я хочу выполнить с ней определенное действие, которое включает нажатие нескольких кнопок. И нет CLI.
Итак, какой самый простой способ автоматизировать это? Я думал об использовании xvfb для открытия программы в поддельной среде X, но как тогда мне выполнять операции ввода? Это может быть щелчок по пикселю в точке (x, y), но было бы еще лучше, если бы я мог ссылаться на кнопки и пункты меню.
Если есть более простой способ сделать это, пожалуйста, скажите! Я не уверен, что xvfb — правильный метод. Я даже не знаю настоящего названия того, чего я пытаюсь добиться, поэтому поиск очень труден...
решение1
Использоватьxdotool
который может имитировать ввод с клавиатуры/мыши, управление окнами и многое другое.
Пример использования на основеinstall_mt4-xdot.sh
скрипт, который устанавливает приложение Windows под Wine:
wine setup.exe &
echo "Waiting to initialize..."
while ! WID=$(xdotool search --name "Setup"); do
sleep 2
done
echo "Sending installer keystrokes..." >&2
xdotool key --window $WID --delay 500 space Tab Tab Tab Return Tab Tab Tab space Alt+n
echo "Waiting for installer to finish..." >&2
xwininfo -id $WID -tree
while pgrep -l setup; do sleep 5; done
echo "Waiting program to start..." >&2
while ! WID=$(xdotool search --name "Title - *"); do
sleep 2
done
echo "Closing application..." >&2
xdotool key --window $WID --delay 500 Escape Escape Alt+f x
sleep 1
wineserver -k
echo "Installation successful." >&2
С помощью xdotool
вы можете управлять любым приложением или окном.
Однако, если ваше приложение Wine работает только под управлением Xvfb, вы также можете рассмотреть возможность использованияwinetricks
.