5

他のアプリケーション (コンソール) を使用してこのプログラムにパラメーターを渡し、C# プログラム内でそのプログラムの出力を取得する必要があります。コンソールを表示したくありません (すべてユーザーには表示されません)。どうやってやるの?

4

1 に答える 1

16
Process myProcess = new Process();
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("YOUPROGRAM_CONSOLE.exe" );
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();

StreamReader myStreamReader = myProcess.StandardOutput;
string myString = myStreamReader.ReadLine();
Console.WriteLine(myString);
myProcess.Close();

出典:MSDN

編集: エラー メッセージを取得する必要がある場合は、非同期操作を使用する必要があります。非同期読み取り操作を使用して、これらの依存関係とデッドロックの可能性を回避できます。または、2 つのスレッドを作成し、別のスレッドで各ストリームの出力を読み取ることによって、デッドロック状態を回避できます。

于 2008-10-11T14:30:25.667 に答える