반응형
C#에서 다른 프로그램을 실행하고 결과값을 받는 방법은 다음과 같다.
void MyMethod() { Process process = new Process(); process.StartInfo.FileName = "c:\\program_name.exe"; process.StartInfo.Arguments = ""; process.StartInfo.WindowStyle = ProcessWindowStyle.Normal; process.StartInfo.CreateNoWindow = true; process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.OutputDataReceived += new DataReceivedEventHandler(OutputHandler); process.ErrorDataReceived += new DataReceivedEventHandler(OutputHandler); process.Start(); process.BeginOutputReadLine(); process.BeginErrorReadLine(); process.WaitForExit(); if (process.ExitCode == 0) { [Ok] } else { [Error] } process.Dispoe(); // void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine) { outLine.Data 사용; } } |
실행되는 프로그램에서 결과값이 반환될 때마다 OutputHandler이 호출된다. string형의 outLine.Data에 결과값이 있다.
Process는 Dispose를 해야 한다. Dispose 대신 using을 사용할 수도 있다.
반응형
'컴퓨터 > C#' 카테고리의 다른 글
C# UDP 프로그램 (0) | 2019.07.16 |
---|---|
[C#] 자원 관리 - Managed와 Unmanaged 차이 (0) | 2019.07.13 |
C# using 사용하는 이유 (0) | 2019.07.04 |
C# 다른 프로그램 제어 (0) | 2019.06.26 |
C# 프로그램 중복실행 방지 (0) | 2019.06.26 |
댓글