11

Как я могу заменить программу по умолчанию, обеспечивающую консольные окна под Windows XP?

Я знаю об альтернативных программах, и у меня есть ярлык для запуска cmd.exe в Console2. Но теперь я хочу, чтобы консольные приложения запускались в Console2, а не в консольной программе по умолчанию, даже когда я не контролирую программу, запускающую консольное приложение. (Т.е. неконсольная программа запускает consoleapp.exe , и я не могу изменить ее для запуска Console2, но я все же хочу, чтобы приложение запускалось внутри нового экземпляра Console2.)

(Обратите внимание, что я хочу заменить саму консоль , то есть окно, в котором запускаются консольные (т.е. текстовые) приложения. И я должен иметь возможность запускать произвольные неизмененные консольные приложения: замена конкретной консольной программы, такой как Cmd, не принесет мне пользы.)

РЕДАКТИРОВАТЬ: Итак, что я после того, как замена CSRSS, что приводит к

ОТ: Я хочу знать, когда Microsoft собирается сделать достойную замену CSRSS. Неспособность отрегулировать ширину "терминала" путем изменения размера окна - полная шутка.

Иди скачай ISE уже. (Он включен в Win7/2008R2.)

Но насколько я понимаю, этот ISE является средой для Powershell, а не общим консольным эмулятором.

2 ответа2

9

Я автор ConEmu - эмулятора консоли Windows. Одна из его функций - захват на свою вкладку существующих консолей или простых приложений с графическим интерфейсом. Итак, после запуска консольной программы в стандартной консоли (CSRSS/ConHost) вы можете:

  • В системном меню ConEmu выберите пункт «Attach ...» (по умолчанию Win+G ) и выберите окно присоединения. Если ConEmu не был запущен, вы можете при желании запустить его без создания консоли / вкладки при запуске:

    C:\Tools\ConEmu.exe /detached
    
  • Или, если применимо, запустите в запущенной консоли следующую команду (ConEmu\Attach.cmd), которая инициирует подключение со стороны консоли. Обратите внимание, что в этом случае ConEmu.exe (GUI) будет запущен автоматически, если он еще не существует.

    ConEmuC.exe /ATTACH /NOCMD
    
  • Есть еще один способ. Я думаю, что это не соответствует вашим требованиям, однако я раскрою это. В реестре есть ключ, содержимое которого cmd / tcc выполняется после запуска консоли. Пока вы consoleapp.exe , а не cmd.exe , это пропустите. В дистрибутиве ConEmu есть файл Cmd_Autorun.cmd для установки / удаления этой команды.

    [HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
    "AutoRun"="\"<Command to be executed>\"" 
    

Здесь есть тег , на Superuser.com

UPD. Сборка 120704. Альтернативный ненавязчивый режим присоединения для консольных окон.

ConEmu прикрепить диалог внешней консоли

UPD2. Сборка 121128. Можно перехватить "создание окна консоли" из указанных (пользователем) приложений, например explorer.exe,vcexpress.exe . Узнайте больше об этой навязчивой экспериментальной функции .

1

Ты не можешь Консоли Win32 всегда используют встроенные консольные окна, предоставляемые CSRSS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .