2008-11-25 4 views

답변

7
Process p = new Process(); 
p.StartInfo.UseShellExecute = false; 
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.FileName = "myExec.exe"; 
p.Start(); 
+0

이 답변이 적용되었습니다. 감사! – user40856

+2

현재 작업 디렉토리가 변경되지 않은 경우에만 상대 파일 경로가 작동합니다 ... –

+0

어떻게 매개 변수를 전달하고 비동기 적으로 호출 할 수 있습니까? –

3

Process.Start. stdout을 캡처하려면 ProcessStartInfo을 통해 리디렉션해야합니다 (예 : MSDN). 또한 exe가 출력 디렉토리 (bin/release 등)에 복사되도록 표시되어 있는지 확인하십시오.

stdout과 stderr에서 모두 읽어야하는 경우 (버퍼링 등으로 인해 교착 상태가 발생할 수있는 순진한 구현이 필요함) ... here's 작업자 스레드를 사용한 예제.

관련 문제