У меня есть очень старое приложение DOS, которое я хотел бы автоматизировать. Например, есть нажатия клавиш и тому подобное, которые, если их автоматизировать, очень помогут, поскольку мне, возможно, придется запускать программу более сотни раз вручную.
Мой вопрос кажется очень похожим на этот, но предлагаемые там решения для меня не очень полезны, к тому же ему больше девяти лет.
Автоматизация старого приложения DOS с помощью Python
Единственная большая разница между этим и моим вопросом заключается в том, что у меня нет другого выхода, кроме DOSbox, для этого. Это приложение установлено на множестве компьютеров, и все люди, использующие его, знают, как использовать DOSBox. Переход на Virtualbox будет болезненным и займет очень много времени.
Я думал, может, я смогу как-то механизировать это на python, используя xautomaton или uinput, но я не мог точно понять, как это сделать. Приложение будет работать в первую очередь на Ubuntu.
Чтобы дать представление о приложении, прилагаю скриншот:
Решение не обязательно должно быть на Python. Подойдет любой другой язык. Любая помощь приветствуется.
Мне очень жаль, что я упомянул об этом в самом вопросе. DOSbox работает на Ubuntu. Я отредактирую вопрос
Затем вам следует поискать, как отправлять ключи в окна X11.
Хорошо. Что-то вроде xdotool, наверное? Хотя правильный ответ поможет
Я прокомментировал не просто так. Я мог бы помочь ни для WinAPI, ни для X11. Надеюсь, вы найдете других ответчиков ...
Конечно, все равно спасибо. Я сам напишу ответ если разберусь






Я понял это. Хотя здесь не используется python, для этого я просто захватил идентификатор окна DOSbox и отправил туда все нажатия клавиш с помощью xdotool. Вот пример:
wid=$(xdotool search --class DOSbox)
xdotool key --window $wid m t 5 Return Return i
Будет набрано «mt5», затем дважды нажмите «Ввод», а затем введите «i».
Последовательность нажатий клавиш может быть сохранена в строке или файле и вызываться итеративно каждый раз, когда она должна выполняться. Если есть лучший способ сделать это, пожалуйста, ответьте.
Неправильный ответ, поэтому опубликован как комментарий. В зависимости от ОС, в которой установлен Dosbox, вам следует попытаться отправить нажатия клавиш в окна, содержащие dosbox. Для окон stackoverflow.com/questions/2113950/… может давать подсказки.