uruchomienie procesu z parametrem - pobranie odpowiedzi

0

Cześć,
Moim celem jest uruchomienie zewnętrznego programu z parametrem i odczytanie odpowiedzi programu. Ostatniej rzeczy niestety nie udaje mi się wykonać, dlatego proszę Was o pomoc.

Program zwraca błąd, jeśli uruchomiony jest z niewłaściwym parametrem, testowałem tworząc plik .bat:

IF ERRORLEVEL 1 goto ERROR 

Poniższy kod po uruchomieniu zewnętrznego programu w odpowiedzi zawsze daje pusty string:

 Process ps1 = new Process();
            ps1.StartInfo.FileName = filename;
            ps1.StartInfo.Arguments = arguments_psi1;
            ps1.StartInfo.UseShellExecute = false;
            ps1.StartInfo.RedirectStandardOutput = true;           
            ps1.Start();
 
            ps1.WaitForExit();
 
            string output = (ps1.StandardOutput.ReadToEnd());

//edycja: Przeniosłem temat do właściwego działu

0

i co output ma? Albo Ci to sie zawiesi na dluzej, albo zwroci cos (nawet blad kodu od systemu). Zobacz pod debuggerem. MAsz kod zrodlowy drugiego programu?

0

Dzięki. Aplikacja zewnętrzna, nie posiadam kodu źródłowego. Jedyne co wiem, to: aplikacja zwraca błąd, gdy uruchamiam program przez plik .bat.

IF ERRORLEVEL 1 goto ERROR

Mam następujące podejrzenie: aplikacja nie zwraca błędu ani przez StandardOutput, ani przez StandardError (otrzymuję pusty string), a kod błędu zwracany do cmd.exe (plik .bat) to inna rzecz. Czy może tak być?

1 użytkowników online, w tym zalogowanych: 0, gości: 1