Como posso substituir o programa padrão que fornece janelas de console no Windows XP?
Conheço programas alternativos e tenho um atalho para iniciar cmd.exe
no Console2 . Mas agora eu quero que os aplicativos de console iniciem no Console2 em vez do programa de console padrão, mesmo quando não tenho controle sobre o programa que inicia o aplicativo de console. (Ou seja, um programa que não seja do console é iniciado consoleapp.exe
e não é possível alterá-lo para iniciar o Console2, mas ainda quero que o aplicativo seja iniciado dentro de uma nova instância do Console2.)
(Observe que eu quero substituir o próprio console , ou seja, a janela na qual os aplicativos do console (ou seja, modo de texto) são executados. E eu devo poder executar aplicativos de console arbitrários e não modificados: um substituto para um programa de console específico como o Cmd não me fará nenhum bem.)
EDIT : Então, o que eu estou procurando é uma substituição do CSRSS , o que leva a
OT: Quero saber quando a Microsoft fará uma substituição decente do CSRSS. Não poder ajustar a largura de um "terminal" redimensionando a janela é uma piada completa.
Vá baixar o ISE já. (Está incluído no Win7 / 2008R2.)
Mas, tanto quanto eu entendo, este ISE é um ambiente para o Powershell , não um emulador de console geral.
fonte
Respostas:
Sou autor do ConEmu - emulador de console do Windows. Um de seus recursos é capturar em sua guia os consoles existentes ou aplicativos GUI simples. Portanto, após iniciar o programa do console no console padrão (CSRSS / ConHost), você pode:
No menu do sistema ConEmu, escolha o item "Anexar ..." ( Win+ Gpor padrão) e escolha a janela anexada. Se o ConEmu não foi iniciado, você pode, opcionalmente, iniciá-lo sem criar console / guia na inicialização:
Ou, se aplicável, execute no console iniciado o seguinte comando (ConEmu \ Attach.cmd) que inicia a conexão do lado do console. Observe que, nesse caso, o ConEmu.exe (GUI) será iniciado automaticamente, se ainda não existir.
Há mais uma maneira. Eu acho que não corresponde aos seus requisitos, no entanto, divulgarei. Há uma chave no registro, cujo conteúdo cmd / tcc é executado após a inicialização do console. Enquanto você está começando
consoleapp.exe
, nãocmd.exe
, esta senhorita. Há umCmd_Autorun.cmd
arquivo no ConEmu distrib para instalar / desinstalar este comando.Há uma tag aqui, no Superuser.com
UPD . Build 120704. Modo de conexão não invasivo alternativo para janelas do console.
UPD2 . Compilação 121128. É possível interceptar a "criação da janela do console" de aplicativos especificados (por usuário), por exemplo
explorer.exe,vcexpress.exe
. Leia mais sobre esse recurso experimental intrusivo .fonte
consoleapp.exe
, recebo a mensagemConEmuC.X, PID=5656 Injecting remote into PID=5432 FAILED, code=-111:0x00000057
. Comoconsoleapp.exe
é um programa que estou depurando, ver "injetar controle remoto" me faz suspeitar que a técnica usada pelo ConEmu nunca funcionará para mim - não posso permitir que programas "estrangeiros" perturbem o programa que estou depurando.sh
diretamente; 2. deve permitir dividir a janela em múltiplas abas verticais / horizontais e recordar este arranjo guia personalizada no reinício.Você não pode. Os consoles Win32 sempre usam as janelas internas do console fornecidas pelo CSRSS.
fonte
csrss
paraconhost.exe
. Infelizmente, ainda é a mesma interface antiga e, tanto quanto eu sei, suas APIs não são documentadas. Mais em blogs.technet.com/b/askperf/archive/2009/10/05/…