Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемма с консольными DOS приложениями.


DDS ©   (2003-10-23 23:12:00) 

Я запускаю DOS-прогу и хочу получить текст того, что она писала
Например: c:\command.com > log.txt
Но некоторые проги почему-то не хотят создавать логи таким образом. Я это делаю через CreateProces.
К стати в FARе из коммандной строки все создается.


nikkie   (2003-10-24 17:56:00) [1]

символ > воспринимается интерпретатором команд как указание перенаправить вывод в файл. либо в CreateProcess надо передать строку типа "cmd.exe c:\command.com > log.txt", либо надо работать с pipes - CreatePipe, передать созданный пайп как hStdOutput, hStdError в CreateProcess, указав STARTF_USESTDHANDLES. в поиске найдешь пример кода.


Jel   (2003-10-24 15:45:00) [2]

Можно попробовать использовать Pipes, но, к сожалению, это не универсальное средство. Есть много программ вывод которых таким образом не перехватывается.


Dima_dvp   (2003-10-23 23:56:00) [3]

Вообще не понимаю как у тебя получилось это с некоторыми прогами. Символ ">" при вызове CreateProcess передаётся программе как аргумент, а при вызове из консоли этот символ не передаётся программе, а говорит ОС о том что надо весь вывод перенаправить в тот поток, который указан после ">" (это файл или дисплей, или порт, ...).
Я могу ошибаться, поправьте меня если я не прав.
Мною сказаное точно справедливо для чистого ДОС


Наверх

Титульная страница Поиск, карта сайта Написать письмо