I'm trying to do a 'scripted telnet' project in C# (something vaguely resembling the Tcl Expect package) for which I need to start a telnet process and redirect (and process) its stdin/stdout streams.
The problem is, the spawned telnet process quits immediately after starting (it does start, however).
If I try to do the same with -say- cmd.exe, it works.
Does the telnet implementation require an interactive stdin? Does this concept even exist in Windows?
I'm running Win7 64 bit, could this contribute to the dscribed behaviour?
Here's the snippet i use:
Process m_process = new Process();
m_process.StartInfo = new ProcessStartInfo(
@"C:\Windows\system32\telnet.exe", "towel.blinkenlights.nl");
//required to redirect stdXXX
m_process.StartInfo.UseShellExecute = false;
m_process.StartInfo.ErrorDialog = false;
m_process.StartInfo.RedirectStandardInput = true;
m_process.StartInfo.RedirectStandardOutput = true;
m_process.StartInfo.RedirectStandardError = true;
Thread.Sleep(50);
Console.WriteLine(" exited? " + m_process.HasExited);
The output is:
exited? True
If I use this:
...
m_process.StartInfo = new ProcessStartInfo(
@"C:\Windows\system32\cmd.exe", "");
...
the output is
exited? False