Utermiko Opublikowano 6 Czerwca 2012 Udostępnij Opublikowano 6 Czerwca 2012 Witam. Próbuję w C# napisać program, który przechwytuje cmd.exe. Używam metod StandardOutput oraz StandardInput. Problem w tym, że potrzebuję zrobić tak, że najpierw wpisuję polecenie, następnie otrzymuję odpowiedź, i konsolka jest gotowa do wprowadzenia kolejnego polecenia. Męczę się z tym już 2 godziny, próbowałem różnych metod i zastanawia mnie, dlaczego poniższy kod nie działa. Tzn. przechwytuje tekst, ale po skończeniu dalej próbuje to robić i program się wysypuje. while (!(p.StandardOutput.EndOfStream)) { ans += p.StandardOutput.ReadLine(); } p.StandardOutput.ReadToEnd() - wysypuje program. Sądzę, że to koliduje z wejściem, bo kiedy zamknę strumień wejścia ("p.StandardInput.Close()"), to ReadToEnd() nie wysypuje programu. To by była dobra opcja, ale niestety nie da się chyba znów przywrócić. Z góry dziękuję za pomoc. @EDIT W skrócie chodzi mi o to, żeby odpalić cmd.exe i wyjście przenosić do RichTextBoxa, a wejście wprowadzać za pomocą TextBoxa. Tak żebym mógł normalnie poruszać się po folderach itp. Teoretycznie już wiem jak to zrobić ale jest pewne ale. p.StandardInput.WriteLine(@polecenie); p.StandardInput.Flush(); p.StandardInput.Close(); wynik = p.StandardOutput.ReadToEnd(); Ten kod wtedy działa, ale jak potem otworzyć strumień wejścia? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bagnz0r Opublikowano 25 Lutego 2014 Udostępnij Opublikowano 25 Lutego 2014 A nie lepiej po prostu użyć callback'a? http://msdn.microsoft.com/en-us/library/sy...=vs.110%29.aspx Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piotrek1910 Opublikowano 25 Lutego 2014 Udostępnij Opublikowano 25 Lutego 2014 Jak coś napiszesz to najpierw spójrz na date. Po za tym sądzę, że już rozwiązał to. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bagnz0r Opublikowano 26 Lutego 2014 Udostępnij Opublikowano 26 Lutego 2014 Co za necro. :S Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się