2015-07-11 63 views
0

我已在C#视觉工作室2010的应用在本申请中,我发送ping命令cmd并在RichTextBox接收所述cmd的输出命令提示。这里是我的代码: -无法隐藏在C#窗口形式应用视觉工作室2010

void proc_OutputDataReceived(object sender, DataReceivedEventArgs e) 
{ 
    if (e.Data != null) 
    { 
     string newLine = e.Data.Trim() + Environment.NewLine; 
     MethodInvoker append =() => txtOutput.Text += newLine; 
     txtOutput.BeginInvoke(append); 
    } 
} 
private void btnPing_Click(object sender, EventArgs e) 
{ 
    string command = "/c ping " + txtPing.Text; 

    ProcessStartInfo procStartInfo = new ProcessStartInfo("CMD", command); 

    Process proc = new Process(); 
    proc.StartInfo = procStartInfo; 
    proc.Start(); 

    procStartInfo.RedirectStandardOutput = true; 
    procStartInfo.UseShellExecute = false; 
    proc.OutputDataReceived += new DataReceivedEventHandler(proc_OutputDataReceived); 
    proc.Start(); 
    proc.BeginOutputReadLine(); 
    proc.WaitForExit(); 
} 

我的代码是伟大的工作,但问题是cmd也越来越弹出当我点击start按钮。我想隐藏这cmd,因为我只想在RichTextBox.显示输出所以,我的问题是,我怎么能在我的应用程序中隐藏cmd。 这里是我的问题的屏幕截图。 enter image description here

回答

0

试试这个:

proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 

这为我工作。

+0

感谢,但它不工作 –

+0

试试这个:procStartInfo.StartInfo.UseShellExecute = FALSE; procStartInfo.StartInfo.CreateNoWindow = true;随着我提到的语法 – Partha

+1

@Partha请把你的头脑。回答说一件事,另一个意见。 –

0

尝试添加这些行。这对我有效。

procStartInfo.CreateNoWindow = true; 
procStartInfo.UseShellExecute = false; 
procStartInfo.RedirectStandardOutput = true; 
+0

一个cmd窗口仍然存在,显示ping结果.. –

+0

对于该窗口也一样! – Jamil

+1

@Tabish那是因为你做得不对。 –