2012-04-30 16 views
3

私はC#プログラム、つまり別のC#プログラムからの.exeを実行しています。 .exeのプログラムにはConsole.WriteLine()がいくつかあります。私は私のC#プログラムに標準出力を得たいと思っています。別のC#プログラムからのC#実行可能ファイルの出力

例えば、

は、C#の実行すなわち1.EXEを考慮し、他のプログラム2.cs.があります

2.cs 1.exeから電話しています。コンソールが1から表示している出力があります。しかし、私は自分のプログラム2.cs.で出力をしたいユーザに情報を表示する。

可能ですか?

は感謝 サイシンドゥ

+0

[.NETアプリケーション(C#)からのコンソール出力のキャプチャ]の複製(http://stackoverflow.com/questions/186822/capturing-console-output-from-a-net-application-c) –

+1

投稿する前に、類似の質問のスタックオーバーフローを検索することを忘れないでください。また、あなたの質問を作成するときにポップアップする提案された質問にも注意してください - 私はほとんど上記の質問が表示されていたと確信しています。 –

答えて

10

あなたはProcessStartInfo.RedirectStandardOutputプロパティを使用することができます助けてください

Process compiler = new Process(); 
compiler.StartInfo.FileName = "csc.exe"; 
compiler.StartInfo.Arguments = "/r:System.dll /out:sample.exe stdstr.cs"; 
compiler.StartInfo.UseShellExecute = false; 
compiler.StartInfo.RedirectStandardOutput = true; 
compiler.Start();  

Console.WriteLine(compiler.StandardOutput.ReadToEnd()); 

compiler.WaitForExit(); 

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput.aspx

1

あなたは、標準出力ストリームをリダイレクトするために持っているより多くのためのMSDNを見て情報。

プロセスが標準ストリームにテキストを書き込むとき、そのテキストはコンソールに通常 と表示されます。 StandardOutput ストリームをリダイレクトすることにより、プロセスの出力を操作または抑制することができます。 の例では、テキストをフィルタリングしたり、別の形式でフォーマットしたり、 出力をコンソールと指定されたログファイルの両方に書き込むことができます。