Назад Вперед Оглавление

13. Запуск DOS-приложений прямо из оболочки Unix

This part of the document was written by Hans <lermen@fgan.de>.

13.1 Использование имитации нажатия клавиш и опций командной строки.

Используйте параметр конфигурации keystroke и параметр командной строки -I для DOSEMU (>=dosemu-0.66.2) следующим способом:


dos -D-a -I 'keystroke "dir > C:\\garbage\rexitemu\r"'

Текст в двойных кавычках будет "напечатан" эмулятором, как если бы вы набрали его на клавиатуре. Преимущество этой техники в том, что его понимают все приложения DOS, даже интерактивные. Обратная косая '\' интерпретируется как в языке C и обозначает управляющие символы. Вот их текущий список:


\r     Carriage return == <ENTER>

\n     LF

\t     tab

\b     backspace

\f     formfeed

\a     bell

\v     vertical tab





\^x    <Ctrl>x, где X - одно из обычных C,M,L,[ ...

       (т.е.: \^[ == <Ctrl>[ == ESC )



\Ax    <Alt>x, к примеру  \Ad означает <Alt>d



\Fn;   Функциональная клавиша Fn. Учтите, что завершающий ';' необходим.

       (т.е.:  \F10;  == F10 )



\Pn;   Устанавливает виртуальный typematic rate, т.е. скорость

       автонабора. Задается в тиках таймера unix, которые нужно

       выждать между двумя нажатиями. Например, значение 7 приводит

       к скорости 100/7=14 cps.



\pn;   Выждать n тиков перед вводом следующего символа.

       Это полезно, когда DOS-приложение при запуске сбрасывает

       клавиатурный буфер. Если не подождать, все нажатия будут

       потеряны.

При работе в X, возможность имитации нажатий может быть использована для прямого запуска DOS-приложений одним нажатием мыши, если вы грамотно напишете свой .fvwmrc

13.2 Использование входного файла

Я проверял на dosemu-0.64.4/Linux-2.0.28, все прекрасно работало.

Если ваше dos-приложение делает только обычный текстовый вывод, можно попробовать даже так:


   # dos -D-a 2>/dev/null <FILE >FILE.out

FILE.out будет содержать вывод dos-приложения, но с примесью ESC-последовательностей Slang.

Можно развить эту технику, написав скрипт, который будет генерировать для вас 'FILE' и запускать dos программу из командной строки.

Когда будете используете приведенное выше для запуска dosemu из crontab, убедитесь, что процессу установлены правильные переменные окружения (особенно TERM и/или TERMCAP).


Назад Вперед Оглавление
Перевод: Валерий Груздев (grue@vpti.vladimir.ru)

Banner.Novgorod.Ru