我想在C#(類似於Tcl Expect包類似的東西)做一個'scripted telnet'項目,我需要啓動一個telnet進程並重定向(並處理)它的標準輸入/標準輸出流。C#+遠程登錄過程w /重定向標準流立即退出
問題是,產生的telnet進程在啓動後立即退出(但它啓動,但是)。
如果我嘗試使用-say-cmd.exe執行相同的操作,它將起作用。
遠程登錄實施是否需要交互式標準輸入?這個概念是否存在於Windows中?
我正在運行Win7 64位,這可能有助於訂閱的行爲?
這裏的片斷我使用:
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);
輸出是:
退出?真
如果我用這個:
...
m_process.StartInfo = new ProcessStartInfo(
@"C:\Windows\system32\cmd.exe", "");
...
輸出
退出?假
'telnet.exe'不是Windows 7 x64的一部分,不在'c:\ windows \ system32'上 – 2010-02-06 10:43:08
它在我的機器上... – 2010-02-06 15:53:03