Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将c#中的cmd命令输出到标签_C#_Winforms - Fatal编程技术网

如何将c#中的cmd命令输出到标签

如何将c#中的cmd命令输出到标签,c#,winforms,C#,Winforms,我为c#表单应用程序中的runcmd命令编写了代码。现在我想在winform中将cmd输出到标签。我编写了一个代码。但它给了我以下的错误 System.dll中发生类型为“System.InvalidOperationException”的未处理异常 其他信息:StandardOut尚未重定向或流程尚未启动。 private void button1_Click(object sender, EventArgs e) { System.Diagnostics.Process proce

我为c#表单应用程序中的runcmd命令编写了代码。现在我想在winform中将cmd输出到标签。我编写了一个代码。但它给了我以下的错误


System.dll中发生类型为“System.InvalidOperationException”的未处理异常 其他信息:StandardOut尚未重定向或流程尚未启动。

private void button1_Click(object sender, EventArgs e)
{
    System.Diagnostics.Process process = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startiNFO = new  System.Diagnostics.ProcessStartInfo();

    startiNFO.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startiNFO.FileName = "cmd.exe";
    startiNFO.Arguments = "/C ipconfig";
    startiNFO.UseShellExecute = false;

    process.StartInfo.RedirectStandardOutput = true;
    process.StartInfo.RedirectStandardInput = true;

    process.StartInfo = startiNFO;

    process.Start();

    string outp = process.StandardOutput.ReadToEnd();
    process.WaitForExit();

    MessageBox.Show(outp);
}  
如何修复它?这是我的原始代码。

private void button1_Click(object sender, EventArgs e)
{
    System.Diagnostics.Process process = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startiNFO = new  System.Diagnostics.ProcessStartInfo();

    startiNFO.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startiNFO.FileName = "cmd.exe";
    startiNFO.Arguments = "/C ipconfig";
    startiNFO.UseShellExecute = false;

    process.StartInfo.RedirectStandardOutput = true;
    process.StartInfo.RedirectStandardInput = true;

    process.StartInfo = startiNFO;

    process.Start();

    string outp = process.StandardOutput.ReadToEnd();
    process.WaitForExit();

    MessageBox.Show(outp);
}  

而不是
process.WaitForExit()这样做

函数的完整代码如下所示

private void button1_Click(object sender, EventArgs e)
{
    System.Diagnostics.Process process = new System.Diagnostics.Process();
    process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    process.StartInfo.FileName = "cmd.exe";
    process.StartInfo.Arguments = "/C ipconfig";
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.CreateNoWindow = true;
    process.StartInfo.RedirectStandardOutput = true;
    process.StartInfo.RedirectStandardInput = true;
    process.Start();
    string q = "";
    while(!process.HasExited)
    {
        q += process.StandardOutput.ReadToEnd();
    }
    label1.text = q;
    MessageBox.Show(q);
} 

我可以将q分配给label1.text吗?字符串outp=process.StandardOutput.ReadToEnd();应该移除吗?好的。谢谢。我会尝试并回复您。System.dll中发生类型为“System.InvalidOperationException”的未处理异常。其他信息:StandardOut尚未重定向或进程尚未启动。我现在想做什么?