2008-11-25 5 views

Odpowiedz

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

ta odpowiedź zadziałała. dzięki! – user40856

+2

mimo że względna ścieżka pliku działa tylko wtedy, gdy bieżący katalog roboczy się nie zmienił ... –

+0

Jak przekazać parametry do tego i jak nazwać je asynchronicznie? –

3

Process.Start. Aby przechwycić standardowe wyjście, musisz przekierować je przez ProcessStartInfo - istnieje przykład na MSDN. Upewnij się także, że plik exe jest oznaczony do skopiowania do katalogu wyjściowego (bin/release etc).

Jeśli chcesz odczytać zarówno stdout, jak i stderr, robi się to trudne (z naiwną implementacją istnieje ryzyko zakleszczenia z powodu buforowania itp.) ... here's Przykład użycia wątków roboczych.