Вопрос № 59124: Может вы мне подскажете. Вопрос не совсем по языку сколько по написанию. Я использую far Manager. Но проблема в том, что бывают случаи когда при запуске какой-нибудь дос проги после ее выполнения нет обратного возврата в оболочку far. Например, если ...
Вопрос № 59.124
Может вы мне подскажете. Вопрос не совсем по языку сколько по написанию. Я использую far Manager. Но проблема в том, что бывают случаи когда при запуске какой-нибудь дос проги после ее выполнения нет обратного возврата в оболочку far. Например, если просто запустить tlink без параметро, то в консоль будет выдана справка по параметрам и возврат в оболочку far не произойдет все повиснет в консоли. Если опять набрать far, то в системе будут два процесса, причем второй будет в фоне. Это не только касается tlink-а,
но и некоторых других дос программ. Хотелось бы знать: во - первых почему это происходит, во - вторых как с этим боротся. Или хотя бы как из консоли вызвать консоль, но в новом окне.
Отправлен: 16.10.2006, 16:22
Вопрос задал: Oxaid (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: ADSota
Здравствуйте, Oxaid!
Far при запуске программ - запускает программу в своей консоли. Tlink при работе запускает программку DPMILOAD.exe, которая некорректно (с точки зрения Windows) завершается. Виндовс при этом ожидает код возврата из программы. Так и получается - ожидание завершения программы, которая уже завершилась.
Из консоли вызвать консоль можно "командой" start, например:
Start tlink.exe /at myprog.obj
--------- Открыть глаза навстречу солнцу
Ответ отправил: ADSota (статус: Специалист)
Ответ отправлен: 16.10.2006, 16:40
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Oxaid!
Дополню эксперта ADSota
Tlink будет нормально завершаться, если вызывать из батника
tasm file.asm
tlink file.obj
Если tlink запущен сам по себе, то чтобы вернуться из консоли в Far, можно прибить оставшуюся виртуальную машину - процесс NTVDM.EXE
kill ntvdm.exe
Единственно только, необходимо, чтобы был запущен только один процесс ntvdm.exe
Утилитку kill.exe прилагаю
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа. --------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 16.10.2006, 17:17
Отвечает: Bob Johnson
Здравствуйте, Oxaid!
Идем в каталог windowssystem32 и находим там файл CONFIG.NT. Открываем в текстовом редакторе (в том же фаре), находим строчку
REM NTCMDPROMPT
убираем REM, читаем что написано ниже:
REM When you return to the command prompt from a TSR or while running an
REM MS-DOS-based application, Windows runs COMMAND.COM. This allows the
REM TSR to remain active. To run CMD.EXE, the Windows command prompt,
REM rather than COMMAND.COM, add the command ntcmdprompt to CONFIG.NT or
REM other startup file.
p.s. тут REM убирать не надо, это комментарий :)
Ответ отправил: Bob Johnson (статус: Академик) Россия, Калуга WWW:Программирование ---- Ответ отправлен: 16.10.2006, 18:43