Я автор ConEmu - эмулятора консоли Windows. Одна из его функций - захват на свою вкладку существующих консолей или простых приложений с графическим интерфейсом. Итак, после запуска консольной программы в стандартной консоли (CSRSS / ConHost) вы можете:
В системном меню ConEmu выберите пункт «Присоединить ...» ( Win+ Gпо умолчанию) и выберите окно подключения. Если ConEmu не был запущен, вы можете при желании запустить его без создания консоли / вкладки при запуске:
C:\Tools\ConEmu.exe /detached
Или, если применимо, запустите в запущенной консоли следующую команду (ConEmu \ Attach.cmd), которая инициирует подключение со стороны консоли. Обратите внимание, что в этом случае ConEmu.exe (GUI) будет запущен автоматически, если он еще не существует.
ConEmuC.exe /ATTACH /NOCMD
Есть еще один способ. Я думаю, что это не соответствует вашим требованиям, однако я раскрою это. В реестре есть ключ, содержимое которого cmd / tcc выполняется после запуска консоли. Пока вы начинаете
consoleapp.exe
, нетcmd.exe
, это мисс. ВCmd_Autorun.cmd
дистрибутиве ConEmu есть файл для установки / удаления этой команды.[HKEY_CURRENT_USER\Software\Microsoft\Command Processor] "AutoRun"="\"<Command to be executed>\""
Здесь есть тег, на Superuser.com
UPD . Build 120704. Альтернативный ненавязчивый режим присоединения для консольных окон.
UPD2 . Build 121128. Можно, например, перехватить «создание окна консоли» из указанных (пользователем) приложений explorer.exe,vcexpress.exe
. Узнайте больше об этой навязчивой экспериментальной функции .