Hej,
Chcę się skomunikować z innym procesem poprzez standardowe wejście/wyjście - napisać jakiś tekst i przeczytać, to co wychodzi z procesu. Mój kod:
Process myProcess = new Process();
myProcess.StartInfo.FileName = "EVACNET4.EXE";
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardInput = true;
myProcess.Start();
StreamWriter myStreamWriter = myProcess.StandardInput;
String inputText = "save";
myStreamWriter.WriteLine(inputText);
myProcess.Close();
Dla utworzonej przeze mnie testowej aplikacji konsolowej taki kod działa - napis SAVE jest poprawnie przekazany do aplikacji.
Chciałem jednak skomunikować się z programem, którego nie pisałem. Konkretnie chodzi mi o małą aplikację (dostępną z tego adresu : http://tomkisko.com/ise/files/evacnet/ ) - proszę się nie obawiać - to nie wirus.
Przykładowo, po uruchomieniu tego programu (EVACNET4.EXE) i wpisaniu polecenia SAVE, zostanie utworzony plik "EXAMPLE.MOD".
Gdy chcę przekazać napis save przy pomocy powyższego kodu, do tego programu, nic się nie dzieje - nie ma błędu ale też nie tworzy się żaden plik - stąd wnioskuję, że komenda nie została poprawnie przekazana.
Czy robię coś źle?
Czy może ten program ma jakąś blokadę lub z innego powodu nie można się z nim skomunikować ?
Proszę o pomoc.