Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2012, 14:39   #1
RaJa
 
Регистрация: 14.09.2011
Сообщений: 3
По умолчанию Захват вывода консольного приложения (avrdude.exe)

День добрый.
Возникла необходимость получать вывод от avrdude - известный программатор микроконтроллеров.
Проблема в том, что стандартный захват вывода с помощью pipe и CreateProcess, отлично работающий для ping и тому подобных программ, на avrdude не дает ничего - возвращает пустую строку. При этом само приложение отрабатывает нормально. Не удается получить только его вывод. Приложение консольное, но видимо как-то хитро выводит в консоль. Может не использует стандартный поток.
Есть идеи как это обойти?
P.S. та же задача в принципе что и с chkdsk.exe, только с чекдиском срабатывает перенаправление вывода в файл, а тут и это не работает, что наводит на мысль о том, что программа не использует стандартный поток. Но тем не менее Sinaprog получает ее вывод, значит это возможно.
RaJa вне форума Ответить с цитированием
Старый 19.03.2012, 15:17   #2
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,051
По умолчанию

А вывод в файл не получится выполнить, типа
Код:
blabla > c:\result.log
?

И может это поможет.

Последний раз редактировалось Noor; 19.03.2012 в 15:21.
Noor вне форума Ответить с цитированием
Старый 19.03.2012, 17:26   #3
RaJa
 
Регистрация: 14.09.2011
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Noor Посмотреть сообщение
А вывод в файл не получится выполнить, типа
Код:
blabla > c:\result.log
?

И может это поможет.
Выввод в файл не срабатывает - создается пустой файл. В отличие от других программ эта выводит видимо не в стандартный поток.
Sinaprog - это уродец, с кривыми настройками, глючный его невозможно интегрировать ни с одной средой разработки. В большинстве случаев он работает просто плохо. Написана софтина на лабвью кажется. Как она захватывает вывод - хз. Вот это бы выяснить.
Я уже написал свою маленькую утилитку, которая прошивает и конфиг берет из командной строки, а настраивается в несколько кликов через GUI. Получается интеграция с IDE CodeBlocks например. Не хватает только получить результат работы avrdude
RaJa вне форума Ответить с цитированием
Старый 19.03.2012, 17:47   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вероятно там вывод идет в STDERR.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.03.2012, 18:24   #5
RaJa
 
Регистрация: 14.09.2011
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вероятно там вывод идет в STDERR.
А вы правы, проверил только что Действительно в ErrorPipe весь вывод поступил, отлично выводится. Спасибо за подсказку!
RaJa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разрешение консольного приложения Bags Общие вопросы C/C++ 3 11.02.2012 20:43
Остановка консольного приложения Igolka6662 Общие вопросы C/C++ 2 06.11.2011 20:07
Форматирование консольного вывода. jojahti Общие вопросы C/C++ 0 15.09.2009 13:17
перехват консольного ввода\вывода Артем5555555 Win Api 14 28.10.2008 23:20
Перехват вывода консольного приложения Роман Радер Общие вопросы Delphi 0 12.02.2007 18:40