Как я могу заменить программу по умолчанию, обеспечивающую консольные окна под Windows XP?
Я знаю об альтернативных программах , и у меня есть ярлык для запуска cmd.exe
в Console2 . Но теперь я хочу, чтобы консольные приложения запускались в Console2, а не в консольной программе по умолчанию, даже когда я не контролирую программу, запускающую консольное приложение. (Т.е. запускается не консольная программа consoleapp.exe
, и я не могу изменить ее для запуска Console2, но я все же хочу, чтобы приложение запускалось в новом экземпляре Console2.)
(Обратите внимание, что я хочу заменить саму консоль , то есть окно, в котором запускаются консольные (т. Е. Текстовые) приложения. И я должен иметь возможность запускать произвольные неизмененные консольные приложения: замена определенной консольной программы, такой как Cmd не принесет мне никакой пользы.)
РЕДАКТИРОВАТЬ : Итак, что я после того, как замена CSRSS , что приводит к
ОТ: Я хочу знать, когда Microsoft собирается сделать достойную замену CSRSS. Неспособность отрегулировать ширину «терминала» путем изменения размера окна - полная шутка.
Иди скачай ISE уже. (Включено в Win7 / 2008R2.)
Но, насколько я понимаю, этот ISE является средой для Powershell , а не общим консольным эмулятором.
источник
Ответы:
Я автор ConEmu - эмулятора консоли Windows. Одной из его функций является захват на своей вкладке существующих консолей или простых приложений с графическим интерфейсом. Итак, после запуска консольной программы в стандартной консоли (CSRSS / ConHost) вы можете:
В системном меню ConEmu выберите пункт «Присоединить ...» ( Win+ Gпо умолчанию) и выберите окно подключения. Если ConEmu не был запущен, вы можете запустить его без создания консоли / вкладки при запуске:
Или, если применимо, запустите в запущенной консоли следующую команду (ConEmu \ Attach.cmd), которая инициирует подключение со стороны консоли. Обратите внимание, что в этом случае ConEmu.exe (GUI) будет запущен автоматически, если он еще не существует.
Есть еще один способ. Я думаю, что это не соответствует вашим требованиям, однако я раскрою это. В реестре есть ключ, содержимое которого cmd / tcc выполняется после запуска консоли. Пока вы начинаете
consoleapp.exe
, нетcmd.exe
, это мисс. ВCmd_Autorun.cmd
дистрибутиве ConEmu есть файл для установки / удаления этой команды.Здесь есть тег , на Superuser.com
UPD . Build 120704. Альтернативный ненавязчивый режим присоединения для консольных окон.
UPD2 . Build 121128. Можно, например, перехватить «создание окна консоли» из указанных (пользователем) приложений
explorer.exe,vcexpress.exe
. Узнайте больше об этой навязчивой экспериментальной функции .источник
consoleapp.exe
, я получаю сообщениеConEmuC.X, PID=5656 Injecting remote into PID=5432 FAILED, code=-111:0x00000057
. Такconsoleapp.exe
как это программа, которую я отлаживаю, то из-за «удаленного впрыска» у меня возникает подозрение, что метод, используемый ConEmu, никогда не сработает для меня - я не могу позволить «чужим» программам мешать программе, которую я отлаживаю.sh
непосредственного вызова ; 2. он должен позволять разбивать окно в несколько вертикальных / горизонтальных вкладок и вспомните это пользовательское расположение вкладок при перезапускеТы не можешь Консоли Win32 всегда используют встроенные консольные окна, предоставляемые CSRSS.
источник
csrss
вconhost.exe
. К сожалению, это все тот же старый пользовательский интерфейс, и, насколько я знаю, его API недокументированы. Больше на blog.technet.com/b/askperf/archive/2009/10/05/…