Comment puis-je remplacer le programme par défaut fournissant des fenêtres de console sous Windows XP?
Je connais des programmes alternatifs et j'ai un raccourci pour démarrer cmd.exe
dans Console2 . Mais maintenant, je veux que les applications de console démarrent dans Console2 plutôt que le programme de console par défaut, même lorsque je n'ai aucun contrôle sur le programme qui démarre l'application de console. (C'est-à-dire qu'un programme non-console démarre consoleapp.exe
et je ne peux pas le changer pour démarrer Console2 à la place, mais je veux quand même que l'application soit démarrée dans une nouvelle instance de Console2.)
(Notez que je veux remplacer la console elle-même, c'est-à-dire la fenêtre dans laquelle s'exécutent les applications de console (c'est-à-dire en mode texte). Et je dois pouvoir exécuter des applications de console arbitraires et non modifiées: un substitut pour un programme de console spécifique tel que Cmd ne me fera aucun bien.)
EDIT : Donc, ce que je veux, c'est un remplacement CSRSS , ce qui conduit à
OT: Je veux savoir quand Microsoft va faire un remplacement CSRSS décent. Ne pas pouvoir ajuster la largeur d'un "terminal" en redimensionnant la fenêtre est une blague complète.
Allez télécharger l'ISE déjà. (Il est inclus dans Win7 / 2008R2.)
Mais pour autant que je sache, cet ISE est un environnement pour Powershell , pas un émulateur de console général.
la source
Réponses:
Je suis l'auteur de ConEmu - émulateur de console Windows. L'une de ses fonctionnalités consiste à capturer sur son onglet des consoles existantes ou des applications GUI simples. Ainsi, après avoir démarré le programme de la console dans la console standard (CSRSS / ConHost), vous pouvez:
Dans le menu système ConEmu, choisissez l'élément "Attacher ..." ( Win+ Gpar défaut) et choisissez la fenêtre d'attachement. Si ConEmu n'a pas été démarré, vous pouvez éventuellement le démarrer sans créer de console / onglet au démarrage:
Ou, le cas échéant, exécutez dans la console démarrée la commande suivante (ConEmu \ Attach.cmd) qui lance la connexion à partir de la console. Notez que, dans ce cas, ConEmu.exe (GUI) sera démarré automatiquement, s'il n'existe pas déjà.
Il y a une autre façon. Je pense que cela ne correspond pas à vos besoins, mais je vais le divulguer. Il existe une clé dans le registre, dont le contenu cmd / tcc s'exécute après le démarrage de la console. Pendant que vous commencez
consoleapp.exe
, noncmd.exe
, cette miss. Il existe unCmd_Autorun.cmd
fichier dans ConEmu distrib pour installer / désinstaller cette commande.Il y a un tag ici, sur Superuser.com
UPD . Build 120704. Mode d'attachement alternatif non intrusif pour les fenêtres de console.
UPD2 . Build 121128. Il est possible d'intercepter la "création de fenêtre de console" à partir d'applications spécifiées (par utilisateur), par exemple
explorer.exe,vcexpress.exe
. En savoir plus sur cette fonctionnalité expérimentale intrusive .la source
consoleapp.exe
, je reçois le messageConEmuC.X, PID=5656 Injecting remote into PID=5432 FAILED, code=-111:0x00000057
. Puisqu'ilconsoleapp.exe
s'agit d'un programme que je débogue, voir «injecter à distance» me fait suspecter que la technique utilisée par ConEmu ne fonctionnera jamais pour moi - je ne peux pas permettre à des programmes «étrangers» de perturber le programme que je débogue.sh
directement; 2. il devrait permettre de diviser la fenêtre en plusieurs onglets verticaux / horizontaux et rappelez cet arrangement d'onglets personnalisé au redémarrageTu ne peux pas. Les consoles Win32 utilisent toujours les fenêtres de console intégrées fournies par CSRSS.
la source
csrss
dansconhost.exe
. Malheureusement, c'est toujours la même vieille interface utilisateur, et pour autant que je sache, ses API ne sont pas documentées. Plus sur blogs.technet.com/b/askperf/archive/2009/10/05/…