Управление устаревшим интерактивным приложением DOS с помощью скриптов

Мне нужно обернуть интерактивное приложение DOS графическим интерфейсом. Приложение DOS не принимает никаких параметров командной строки. Таким образом, все работы должны выполняться в интерактивном режиме.

Процесс выполнения работы следующий: 1. Запустите приложение DOS в командной строке DOS. 2. Появляется экран, и нас просят «Нажмите любую клавишу для запуска» 3. Нажатие любой клавиши приводит к «Меню 1», где нам представлены варианты выбора: [C] .. Создать новый файл [L] .. Загрузить существующий file [Q] .. Quite Program 4. Нажатие 'L' приведет к другому экрану, который показывает диск по умолчанию для загрузки файла проекта. Если диск не тот, который нужен, «Нажмите [ПРОБЕЛ], чтобы сменить диск» 5. Нажмите «возврат», чтобы подтвердить диск 6. Будут отображены все соответствующие файлы проекта, затем мы можем использовать вверх-вниз-влево-вправо стрелки для навигации и нажмите клавишу ВВОД, чтобы загрузить файл. 7. И интерактивный процесс продолжается до тех пор, пока не будет сгенерирован текстовый вывод.

У меня нет исходного кода приложения DOS.

Есть ли какой-нибудь инструмент, который позволяет мне управлять всем процессом через файл определения. Такой инструмент позволит мне разработать графический интерфейс для выполнения работы без необходимости взаимодействия пользователя со старым приложением DOS.

Спасибо. Дэйвид


person david.healed    schedule 01.06.2009    source источник
comment
У меня есть подобное желание, которого я никогда не преследовал, потому что я могу обойти его, вырезав и вставив из текста, напечатанного сценарием сборки, до того, как эмулятор CP / M, работающий в древнем эмуляторе Z80, работающий в режиме совместимости с DOS, будет запущен на XP Система Pro.   -  person RBerteig    schedule 01.06.2009


Ответы (2)


Самый простой вариант - использовать Quick Test Pro для автоматизации. Если вам все равно, что отображается на экране, вы можете использовать функцию SendKeys для ввода нажатий клавиш. Вы можете использовать SendKeys практически из любого языка / среды Microsoft.

person brianegge    schedule 01.06.2009

Вероятно, вы могли бы сделать это с помощью Windows Script Host и SendKeys метод. Вот пример VBScript из MSDN:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "calc"
WScript.Sleep 100
WshShell.AppActivate "Calculator"
WScript.Sleep 100
WshShell.SendKeys "1{+}"
WScript.Sleep 500
WshShell.SendKeys "2"
WScript.Sleep 500
WshShell.SendKeys "~"
WScript.Sleep 500
WshShell.SendKeys "*3"
WScript.Sleep 500
WshShell.SendKeys "~"
WScript.Sleep 2500
person Helen    schedule 01.06.2009