我需要将一个简单的字符串传递给命令窗口(运行telnet),来自c#winforms应用程序......有一种简单的方法可以做到这一点吗?
我尝试了以下内容,但在重定向standardinput时会全部或全部 -
有1或2个类似于这个,但没有人真的钉它......
p / invoking也可以......
请帮忙!
Process p = new Process();
StreamWriter sw;
//StreamReader sr;
//StreamReader err;
ProcessStartInfo psi = new ProcessStartInfo(@"cmd.exe", @"/C telnet 192.168.0.10");
private void start
{
psi.WindowStyle = ProcessWindowStyle.Normal;
psi.RedirectStandardOutput = false;
psi.RedirectStandardInput = true;
psi.UseShellExecute = false;
psi.CreateNoWindow = false;
p.StartInfo = psi;
p.Start();
}
private void write_to_cmd(object sender, EventArgs e)
{
psi.RedirectStandardInput = true;
sw = p.StandardInput;
////sr = p.StandardOutput;
////err = p.StandardError;
//sw.AutoFlush = true;
if (tbComm.Text != "")
sw.WriteLine(tbComm.Text);
////sw.Close();
////textBox1.Text = sr.ReadToEnd();
////textBox1.Text += err.ReadToEnd();
//p.WaitForExit();
}
}
}
答案 0 :(得分:1)
是的,重定向将是全部或全部。您是否希望用户能够以编程方式以及通过命令提示符发送信息?我想你想将标准输入重定向到telnet,而不是命令提示符。
ProcessStartInfo(“telnet”,“192.168.0.10”);
此外,您可以通过仅使用System.Net.Sockets来打开telnet会话。