![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблемма с консольными 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 передаётся программе как аргумент, а при вызове из консоли этот символ не передаётся программе, а говорит ОС о том что надо весь вывод перенаправить в тот поток, который указан после ">" (это файл или дисплей, или порт, ...).
Я могу ошибаться, поправьте меня если я не прав.
Мною сказаное точно справедливо для чистого ДОС