Зачем мне это нужно? Потому что я пишу свою собственную замену cmd.exe! Я могу CreateProcess и передать дескрипторы в каналы для stdin, stdout и stderr, и я вижу, как я могу использовать AllocConsole, FreeConsole и AttachConsole, но как мне сообщить дочерним программам, что моя программа является консолью? 1003 *
Более подробно для уточнения: у меня есть окно, которое может отображать текст и принимать ввод. Я отображаю текст "C:>", например. Пользователь вводит "foo.exe". Я нахожу foo.exe по пути и вызываю CreateProcess для него. Если он пишет в стандартный вывод, я отображаю этот текст на экране. Если он читает из stdin, я передаю все нажатия клавиш, которые нажимал пользователь. Когда процесс завершается, я снова печатаю подсказку. Все идет нормально. Все работает Но затем я пытаюсь запустить foo2.exe, который создает CreateFile для CONOUT $, что не удается, поскольку к процессу не подключена консоль. Что делает cmd.exe, чтобы дети воспринимали его как консоль?