Windows XPでデフォルトのコンソールエミュレータを置き換える


11

Windows XPでコンソールウィンドウを提供するデフォルトのプログラムを置き換えるにはどうすればよいですか?

私が知っているの代替プログラム、そして私が起動するショートカット持ちcmd.exeコンソール2を。しかし、コンソールアプリケーションを起動するプログラムを制御できない場合でも、デフォルトのコンソールプログラムではなく、Console2でコンソールアプリケーションを起動するようになりました。(consoleapp.exeつまり、コンソール以外のプログラムが起動し、代わりにConsole2を起動するように変更することはできませんが、Console2の新しいインスタンス内でアプリケーションを起動したいです。)

コンソール自体、つまりコンソール(テキストモード)アプリケーションが実行されるウィンドウを置き換えたいことに注意してください。また、Cmdなどの特定のコンソールプログラムの代わりに、任意の変更されていないコンソールアプリケーションを実行できる必要があります。私には何の役にも立ちません。)

編集:だから私が望んでいるの

OT:マイクロソフトがいつCSRSSを適切に置き換えるかを知りたいです。ウィンドウのサイズを変更して「端末」の幅を調整できないことは、冗談です。

ISEを既にダウンロードしてください。(Win7 / 2008R2に含まれています。)

しかし、私が理解している限り、ISEは一般的なコンソールエミュレーターではなく、Powershellの環境です


とにかく、IIRCでConsole2内で実行された場合、新しい見積もりに記載されている欠陥はCMDには適用されません。
パラドロイド

@ jason404:はい。ただし、たとえばバッチファイルをダブルクリックすると、Console2で開きません。このようなインスタンスは、実際にコマンドラインシェルを置き換える必要がある場所です。+1の素晴らしい質問だと思います。
サーシャチェディゴフ

あなたに合ったコンソールエミュレータの新しいタブにstdコンソールの「添付」することができますか?つまり、手動で接続します。
マキシマス

@Maximusあなたが何を言っているのか分かりません。「std console」とは、CSRSSのことですか?その「アタッチ」するものはどこですか?
ジル 'SO-悪であるのをやめる

ConEmuは、既存の「実際のコンソール」(CSRSS、はい)または単純なGUIアプリケーションをそのタブに添付できます。接続は、ConEmuインターフェースから手動で、またはコンソールで特別なコマンドを実行することにより(該当する場合)行うことができます。
マキシマス

回答:


9

私はConEmu -Windowsコンソールエミュレーターの著者です。その機能の1つは、既存のコンソールまたは単純なGUIアプリケーションをタブにキャプチャすることです。そのため、標準コンソール(CSRSS / ConHost)でコンソールプログラムを起動した後、次のことができます。

  • ConEmuシステムメニューで、[Attach ...]アイテム(デフォルトではWin+ G)を選択し、アタッチウィンドウを選択します。ConEmuが起動されていない場合、オプションで起動時にコンソール/タブを作成せずに起動できます。

    C:\Tools\ConEmu.exe /detached
    
  • または、該当する場合、開始されたコンソールで次のコマンド(ConEmu \ Attach.cmd)を実行し、コンソール側からの接続を開始します。その場合、ConEmu.exe(GUI)が自動的に開始されます(まだ存在しない場合)。

    ConEmuC.exe /ATTACH /NOCMD
    
  • もう1つの方法があります。要件と一致しないと思いますが、開示します。レジストリにはキーがあり、そのキーはコンソールの起動後にcmd / tccが実行されます。あなたが始めている間consoleapp.exe、ではなくcmd.exe、このミス。Cmd_Autorun.cmdこのコマンドをインストール/アンインストールするためのファイルがConEmu distribにあります。

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

Superuser.comのここにタグがあります

UPD。ビルド120704。コンソールウィンドウの代替の非侵入型接続モード。

ConEmu接続外部コンソールダイアログ

UPD2。ビルド121128。たとえば、指定された(ユーザーによる)アプリケーションから「コンソールウィンドウの作成」をインターセプトすることができますexplorer.exe,vcexpress.exe。この侵入実験的機能の詳細をご覧ください。


有望に見えますが、私にはうまくいきません(他の人にはうまくいくと思います)。添付しようとするとconsoleapp.exe、メッセージが表示されますConEmuC.X, PID=5656 Injecting remote into PID=5432 FAILED, code=-111:0x00000057consoleapp.exe私がデバッグしているプログラムなので、「リモートへのインジェクト」を見ると、ConEmuで使用されている手法は私には役に立たないのではないかと疑われます。
ジル「SO-悪をやめろ」

ビルド120704を試してください。代替モードが動作する場合があります。
マキシマス

代替モードでビルド120704が機能する、ありがとう。デフォルトのコンソールエミュレータを交換できない場合、アプリケーションの起動後により良いものに接続する方が、何もしないよりはましです。しかし、1回のキープレスでどのように実行するのかわかりません。
ジル 'SO-悪であるのをやめる

@Maximus:あなたのすばらしい仕事を賞賛しないことは仕方がありません。私はめったにWindowsを使用しませんが、時々、CygwinまたはMsysの統合が必要になります。Console2にはこれまで見た中で最も素晴らしいソリューションがありましたが、やや不格好でした。ConEmuは非常に優れていますが、次の2つのことを希望しshます。複数の垂直/水平タブと再起動時にこのカスタムタブ配置を思い出してください。
axel2212

@ axel22:ConEmu Issuesに希望を投稿できます。1.すでにプロファイルがあります。2.ロードマップ内。
マキシマス

1

できません。Win32コンソールは、常にCSRSSが提供する組み込みコンソールウィンドウを使用します。


おかげで、今ではCSRSSの後継者であることがわかりました。
ジル 'SO-悪であるのをやめる

@Gilles:幸運を祈ります。(実際、Windows 7では、その機能の多くがカーネルに移行されましたが、Win32サブシステムのコアである「クリティカルプロセス」のままです。)
user1686

@Gilles:次に、別のシェルを使用します。Win32コンソールは、単なる標準のWindowsターミナルエミュレータです。
パラドロイド

1
@ jason404:そして、Gillesが言ったように、それはシェル(cmd.exe)ではなく、彼が置換しようとしているコンソール(ターミナルエミュレーター)なので、コンソールウィンドウを使用するプログラムは置換を使用します。
user1686

2
Windows 7のコンソールウィンドウの実装はからに移動しcsrssましたconhost.exe。残念なことに、それはまだ同じ古いUIであり、私が知る限り、そのAPIは文書化されていません。blogs.technet.com/b/askperf/archive/2009/10/05/で
ak2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.