Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

stdin, stdout и их перенаправление

18K
05 июля 2006 года
bldragon
4 / / 30.06.2006
У меня есть приложение, которое в качестве дочернего процесса запускает другое приложение и перенаправляет его stdin и stdout. А вот этому дочернему процессу нужно скопировать перенаправленные stdin и stdout (кажется, это делается функцией DuplicateHandle), а потом закрыть их и открыть самые обычные, консольные stdin/stdout.
Не подскажите, как это сделать?
398
05 июля 2006 года
Alexandoros
630 / / 21.10.2005
GetStdHandle
AllocConsole
SetStdHandle
1
05 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=Alexandoros]GetStdHandle
AllocConsole
SetStdHandle[/QUOTE]
Кстати, недавно задали вопрос - как организовать вывод консольной программы например в текстовое поле. Я честно говоря не разобрался. Один из вариантов - перенаправить вывод в файл, а затем его загрузить не сработал. Т.е. к примеру такой код:
Код:
STARTUPINFO si;
PROCESS_INFORMATION pi;
 ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );

  String command = "ping 217.117.66.25 >c:\\temp\\pinh";

 if(!CreateProcess(NULL,command.c_str(),NULL,NULL,False,SW_SHOWMINNOACTIVE,NULL,"c:\\temp\\",&si,&pi))
  Memo1->Lines->Add("Not started");
  WaitForSingleObject( pi.hProcess, INFINITE );
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );

увы желанных результатов не дал. Возможно выход - функция ReadConsole - но она возвращает пустой буфер
11K
05 июля 2006 года
Ireul
90 / / 15.06.2006
[QUOTE=bldragon]У меня есть приложение, которое в качестве дочернего процесса запускает другое приложение и перенаправляет его stdin и stdout. А вот этому дочернему процессу нужно скопировать перенаправленные stdin и stdout (кажется, это делается функцией DuplicateHandle), а потом закрыть их и открыть самые обычные, консольные stdin/stdout.
Не подскажите, как это сделать?[/QUOTE]

Недавно на форуме обсуждалось перенаправление ввода/вывода дочернего процесса при помощи пайпов - это именно то что тебе нужно. Поиск в помощь.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог