2016-10-13 10 views
0

実行中のプロセスのコンソール出力を取得することは可能ですか? 私はこのようなすべての実行中のプロセスのリストを取得することができます知っている:runnningプロセスのコンソール出力を取得するC#またはpowershellウィンドウ

Process.GetProcesses(); 

をしかし、どのように私はそれのファイルまたは別のコンソールアプリケーションに標準出力とパイプにタップすることができます。

前提は、変更できない既存のアプリケーションに対してデバッグ\トレースツールを作成することです。 アプリケーションは特定のプロセスを起動し、RedirectStandardOutputプロパティを設定しないので、その子プロセスの出力をdiganostingする方法がありません。

答えて

0

あなたが求めていることは、C#では本当に可能ではありません。レイヤーをネイティブのC++にドロップすると、Windows APIを使用してAPI Hookingを実装してthis answerで説明したようにこれを実現することは可能です(それでも比較的難しいですが)。

この道を進む前に、その回答の残りの議論に注意してください。大部分の時間は、これはあなたがしたいとは思わない。その議論で述べたように、プログラムは独自のstdoutとyou don't change carpets in someone else's houseを所有しています。 two programs try to do this at onceの場合、何が起こるかも予測してください。

関連する問題