Dodałem więc EXE do rozwiązania mojego projektu. EXE robi pewne rzeczy i wysyła dane przez standardowe wyjście. Chcę uchwycić wynik, ale co ważniejsze, w jaki sposób mogę wykonać ten EXE w moim programie?C# - Jak wywołać exe dodane do rozwiązania projektu
6
A
Odpowiedz
7
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "myExec.exe";
p.Start();
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.
ta odpowiedź zadziałała. dzięki! – user40856
mimo że względna ścieżka pliku działa tylko wtedy, gdy bieżący katalog roboczy się nie zmienił ... –
Jak przekazać parametry do tego i jak nazwać je asynchronicznie? –