www.linux.org.ru
Назад Вперед Оглавление

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)