2

Мне, к сожалению, приходится использовать эту проприетарную программу, которая входит в комплект поставки драйвера камеры. Я хочу выполнить с ним определенное действие, которое включает нажатие нескольких кнопок. И нет CLI.

Итак, как проще всего это автоматизировать? Я хотя бы использовал xvfb, чтобы открыть программу в поддельной среде X, но тогда как мне поступить с выполнением операций ввода? Это может быть пиксель в точке (x, y), но было бы еще лучше, если бы я мог ссылаться на кнопки и пункты меню.

Если есть более простой способ сделать это, пожалуйста, сообщите! Я не уверен, что xvfb - правильный метод. Я даже не знаю фактического названия того, что я пытаюсь достичь, поэтому поиск очень труден ...

1 ответ1

2

Используйте 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .