Получение вывода из приложения оболочки / dos в приложение Delphi

У меня есть приложение командной строки, написанное на delphi, которое мне нужно вызывать из обычного настольного приложения (также написанного на delphi). Короче говоря, я хочу вызвать приложение командной строки и отобразить выводимый им текст «вживую» в списке.

Прошло много времени с тех пор, как я играл с оболочкой, но я отчетливо помню, что для получения текста из приложения командной строки я должен использовать символ вертикальной черты ">". Примерно так:

C: /mycmdapp.exe> ​​c: /result.txt

При этом любой текст, напечатанный в оболочке (с использованием writeLn), будет сохранен в текстовый файл с именем «result.txt».

Но ... (а вот и рассол), я хочу получить живой результат, а не файл невыполненной работы. Типичным примером является сам компилятор Delphi, которому удается сообщать IDE о том, что происходит.Если мне не изменяет память, я, кажется, припоминаю, что я должен создать канал "pipe" (?), А затем назначить имя канала для вызова оболочки.

Я пытался погуглить это, но, честно говоря, не знал, как это сформулировать. Надеюсь, кто-нибудь из сообщества может указать мне правильное направление.

Обновлено : этот вопрос может быть идентичен Как запустить программу из командной строки в Delphi? . Некоторые ответы соответствуют тому, что я ищу, хотя заголовок и сам вопрос не идентичны.

34
задан ROMANIA_engineer 15 December 2017 в 05:56
поделиться