как запустить DOSBox
с помощью командной строки Windows по умолчанию (не открывая ее в новом окне), редактирование исходного кода DOSBox
является решением, но я хочу узнать, нет ли другого решения, прежде чем пересобирать DOSBox
.
еще
есть ли еще какое-либо приложение, которое может запустить 16-битное приложение командной строки в CMD
.
Я пытался DOSBox.exe -nonconsole
, но это не то, что я ищу. Пытался, ScummVM
но D-Box
безрезультатно.
решение1
Не знаю, подойдет ли вам ответ. По крайней мере, я обнаружил, что можно запустить DOSBox, выполнить команды и выйти из него. Это позволяет мне запускать автоматизированные тесты на DOSBox через Travis CI. Однако окно все равно будет, и оно не передает код выхода вызывающей стороне.
Команда будет выглядеть следующим образом:
dosbox exit -c [your_command_here] >>log.txt" -noconsole -exit
Чтобы это работало, необходимо, чтобы файл был вызван exit
в текущем каталоге (потому что exit
он запускается последним и ожидается, что это будет внешняя команда).
Я использую log.txt
программу Dos для получения обратной связи.
Насколько мне известно, DOSBox невозможно запустить без окна. Было бы неплохо, если бы он возвращал код выхода своей командной оболочки. Думаю, это должно быть легко реализовать, но для этого потребуется изменить исходный код.
Я пока не могу поставить плюс, но я думаю, что это полезный вопрос, поскольку DOSBox можно использовать для тестирования в 16-битной среде. В этом смысле вопрос, на самом деле, подходит для StackOverlow.
решение2
ДОСЭМУможет сделать это в его так называемомтупой режим, например
dosemu -dumb DIR
Обратите внимание, что теперь есть также нестабильнаяДОСЕМУ 2. Мне не ясно, продолжение это или разветвление.
решение3
Для этого можно использовать NTVDMx64.http://www.columbia.edu/~em36/ntvdmx64.html
NTVDM — это подсистема NT Virtual DOS Machine, которая была частью 32-разрядных версий Windows. Она могла запускать 16-разрядные программы MS-DOS, используя режим V86 ЦП. Однако этот режим не может быть использован, когда ЦП работает в 64-разрядном режиме. Но, к счастью, у Microsoft была версия NTVDM, которая использовала эмулятор вместо режима V86. Эта версия была утекла в сеть, и по ссылке выше есть информация о том, как ее использовать.