Выполнить и захватить одну программу из другой - PullRequest
5 голосов
/ 27 февраля 2009

В win32 программирование на C:

Какой наилучший способ выполнить консольную программу win32 в другой программе win32, и программа, запустившая выполнение, перехватывает вывод? На данный момент я сделал программу перенаправить вывод в файл, но я уверен, что я должен быть в состоянии открыть какой-то канал?

1 Ответ

5 голосов
/ 27 февраля 2009

Используйте CreateProcess Win32 API для запуска дочернего процесса.

Передайте ей структуру STARTUPINFO с дескрипторами hStdInput, hStdOutput и hStdError, установленными для файловых дескрипторов, которые вы открыли (должны работать либо реальные файлы, либо файлы с отображением в памяти). Вам не нужно указывать все три, вы можете перенаправить только те, которые вам действительно нужны; Наиболее распространенный случай - hStdOutput.

Если вы хотите связаться с дочерним процессом (через hStdInput), вам нужно дождаться его инициализации, вызвав WaitForInputIdle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...