3

C#プログラム、つまり別のC#プログラムからの.exeを実行しています。ただし、.exeのプログラムにはConsole.WriteLine()が含まれています。標準出力をC#プログラムに取り込みたい。

例えば、

C#実行可能ファイル(1.exe)を考えてみましょう。別のプログラム2.csがあります。

2.cs1.exeから呼び出しています。これで、コンソールが1.exeから表示している出力がいくつかあります。しかし、私は私のプログラム2.csに出力が欲しいです。ユーザーに情報を表示するため。

出来ますか?助けてください

ありがとうサイシンドゥ

4

2 に答える 2

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

于 2012-04-30T08:04:56.050 に答える
1

標準出力ストリームをリダイレクトする必要があります。詳細については、MSDNを参照してください。

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

于 2012-04-30T08:06:23.507 に答える