본문 바로가기
컴퓨터/C#

C# 다른 프로그램 실행하기

by Begi 2019. 7. 4.
반응형

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

댓글