Это тривиальный вопрос о перенаправлении стандартного ввода/вывода в консольной программе, но что делать, если программа использует расширенные функции консоли? Как выводить цветной текст, бросая курсор и манипулируя консольным буфером напрямую? Может ли это быть захвачено и перенаправлено на мою собственную программу для обработки?Может ли консольный вывод консольного приложения Windows быть полностью захвачен (включая расширенные манипуляции)?
Примечание. Я говорю о сценарии, когда мое приложение (не обязательно консольное приложение) запускает консольное приложение и перенаправляет его ввод/вывод себе.
Примечание 2: В конце я хочу код C#, но теперь давайте придерживаться открытого API Win32 и C или C++. Я не думаю, что это будет возможно без PInvoke в любом случае, поэтому давайте сначала возьмем основной принцип (если это вообще возможно).
Не говоря уже о возможном сбое на машинах с включенным DEP. : P Ты ** уверен **, что это единственный способ? –
IIRC, Windows NT на самом деле не имеет «расширенного консольного API» за пределами stdin/stdout/stderr, поэтому его приближение выполняется эмулятором термина «cmd.exe» »- интерфейсом GUI, так сказать , Я помню, что я делал подобное приложение, много лет назад, и что я был так же расстроен ситуацией :( – Piskvor
Приобретение API-вызовов для одного процесса не требует административных привилегий, если ваше собственное приложение работает под LUA и целевое приложение повышено. – snemarch