我用一个窗体程序输入关键字给控制台应用程序,然后让控制台应用程序把值传回窗体程序的控件中。两个程序已经分别完成。
è¿ä¸ªç½ä¸è¿æºå¤çå¦ãå ³é®ä»£ç
private void btnExecute_Click(object sender, EventArgs e)
{
tbResult.Text = "";
ProcessStartInfo start = new ProcessStartInfo("Ping.exe");//设置è¿è¡çå½ä»¤è¡æ件é®ping.exeæ件ï¼è¿ä¸ªæ件系ç»ä¼èªå·±æ¾å°
//å¦ææ¯å ¶å®exeæ件ï¼åæå¯è½éè¦æå®è¯¦ç»è·¯å¾ï¼å¦è¿è¡winRar.exe
start.Arguments = txtCommand.Text;//设置å½ä»¤åæ°
start.CreateNoWindow = true;//ä¸æ¾ç¤ºdoså½ä»¤è¡çªå£
start.RedirectStandardOutput = true;//
start.RedirectStandardInput = true;//
start.UseShellExecute = false;//æ¯å¦æå®æä½ç³»ç»å¤å£³è¿ç¨å¯å¨ç¨åº
Process p=Process.Start(start);
StreamReader reader = p.StandardOutput;//æªåè¾åºæµ
string line = reader.ReadLine();//æ¯æ¬¡è¯»åä¸è¡
while (!reader.EndOfStream)
{
tbResult.AppendText(line+" ");
line = reader.ReadLine();
}
p.WaitForExit();//çå¾ ç¨åºæ§è¡å®éåºè¿ç¨
p.Close();//å ³éè¿ç¨
reader.Close();//å ³éæµ
}
追é®æçé®é¢æå·²ç»åºæ¬å®ç°äºï¼ç°å¨ææ°çé®é¢ï¼å°å¨æçæçæ§ä»¶æ·»å å°paneléï¼paneléå¨æçæï¼ï¼ç¶åç¨ä¸ä¸ªbutton_click äºä»¶çæpaneléçæ§ä»¶ï¼å ¨é¨å é¤å°±å¯ä»¥å¦ï¼è°¢è°¢
追çå¨ææ·»å å é¤æ§ä»¶ï¼
æ·»å ï¼TextBox tb = new TextBox();
this.panel1.Controls.Add(tb);
å é¤ï¼int c = this.panel1.Controls.Count;
for(int i=0;i<c;i++)
this.panel1.Controls.RemoveAt(i);
大哥,即使我懂你这句话,我还是不会操作。现在我在控制台程序(已经可以执行,需要一个关键词)中,新建一个窗体类,在窗体里添加了一个textbox(用于传递关键词给控制台程序),怎样操作呢?最好有代码
追答Process process = new Process();//实例
process.StartInfo.CreateNoWindow = false;//设定显示窗口
process.StartInfo.FileName = @"D:\你的控制台程序.exe"; //设定程序名,就是你的控制台程序的完整路径
process.StartInfo.Arguments = textbox.Value; //这里的参数就是你文本框里面的值
process.Start(); //开始执行控制台程序
process.WaitForExit(); //等待退出
process.Close(); //关闭process
懂了么? 把这段代码放到你的winform里面的onclick事件里面或者其他地方就能调用控制台程序了。
在加上我楼下的仁兄提供的输出流代码就可以实现输出结果了。
参考资料:纯手打
参考资料:纯手打
能不能详细一点?