C#从winforms写一个简单的字符串 - > cmd提示telnet

时间:2009-06-24 20:44:58

标签: c# winforms cmd

我需要将一个简单的字符串传递给命令窗口(运行telnet),来自c#winforms应用程序......有一种简单的方法可以做到这一点吗?

我尝试了以下内容,但在重定向standardinput时会全部或全部 -

winforms应用程序没有来启动cmd窗口...... cmd窗口也可能已经运行了 - 我想也许就是如何与它进行通信 -

有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();

    }




}

}

1 个答案:

答案 0 :(得分:1)

是的,重定向将是全部或全部。您是否希望用户能够以编程方式以及通过命令提示符发送信息?我想你想将标准输入重定向到telnet,而不是命令提示符。

ProcessStartInfo(“telnet”,“192.168.0.10”);

此外,您可以通过仅使用System.Net.Sockets来打开telnet会话。