2008-11-25 19 views

Antwort

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

diese Antwort funktionierte. Vielen Dank! – user40856

+2

obwohl der relative Dateipfad nur funktionieren wird, wenn das aktuelle Arbeitsverzeichnis nicht geändert wurde ... –

+0

Wie übergebe ich Parameter an diese und wie rufe ich sie asynchron auf? –

3

Process.Start. Um stdout zu erfassen, müssen Sie es über ProcessStartInfo umleiten - es gibt ein Beispiel auf MSDN. Stellen Sie sicher, dass die exe zum Kopieren in das Ausgabeverzeichnis (bin/release etc.) markiert ist.

Wenn Sie sowohl von stdout und stderr lesen müssen, wird es schwierig (mit einer naiven Implementierung gibt es ein Risiko von Deadlock durch Pufferung usw.) ... here's ein Beispiel mit Worker-Threads.

Verwandte Themen