C#命令没有写一行

时间:2013-04-18 02:04:50

标签: c#

嗯,您好,我如何让这个控制台写一行?我设法使它在你处理时运行cmd.exe,但它没有写入该行。

private void button1_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "alpha")
        {
            progressBar1.Value = 100;
            if (progressBar1.Value == 100)
            {
                MessageBox.Show("Welcome back master!");
                System.Diagnostics.Process.Start(@"C:\Windows\System32\cmd.exe");
                Console.WriteLine("Hello!!!");
            }

        }

2 个答案:

答案 0 :(得分:8)

如果你想与控制台进程交互,你需要这样做: -

var p = new Process
    {
        StartInfo =
            {
                FileName = "cmd.exe", 
                UseShellExecute = false, 
                RedirectStandardInput = true, 
                RedirectStandardOutput = true
            }
    };
p.Start();
var w = p.StandardInput;                
w.WriteLine("Dir");
w.WriteLine("Exit");            
var theDirectoryListing = p.StandardOutput.ReadToEnd();
p.WaitForExit();
w.Close();            
p.Close();

答案 1 :(得分:4)

我认为这是一种你以某种方式设法调用的方法。 System.Diagnostics.Process.Start调用将创建一个命令框。但是,Console.WriteLine将尝试写入您创建的进程(不是上面的cmd.exe),如果它是桌面应用程序,则调用将无法写入控制台,因此没有消息。< / p>