您的位置:首页 > 其它

遇到个问题想发帖、发现积分不够、有高手路过指点一下吧!

2009-10-17 01:23 357 查看
创建CMD进程,并且不关闭,怎么样读取CMD中信息显示到控件上。

我想用线程启动一个CMD进程 CMD是监听程序 不关闭状态的情况下 读取CMD显示的信息 返回到我的textbox上显示

现在的情况就是 我可以启动CMD 但是要CMD停止后才能返回结果,还有就是CMD启动之后 不关闭 程序走不下去 不能读取结果。

有没有办法一直开启CMD 并且每秒读取CMD的信息显示到textbox上。最好使用2个线程 一个运行CMD,一个负责读取并且显示。

目前我写的部分代码 -----有问题

急 感谢各位高手的指点 给点思路吧。

//button事件 负责开启服务
private void button1_Click(object sender, EventArgs e)
{

//创建一个线程并且运行CMD进程方法
Thread t = new Thread(new ThreadStart(Cmd));
Thread s = new Thread(new ThreadStart(form));

Thread.Sleep(500);

t.Start();
s.Start();

}
//CMD方法
public void Cmd()
{
//CMD要执行的语句
string[] cmd = new string[] { "ping 192.168.1.1 -n", "ping 127.0.0.1 -t" };
//创建CMD进程并且配置
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
//启动进程,并且永不关闭。
p.Start();
p.StandardInput.AutoFlush = true;
for (int i = 0; i < cmd.Length; i++)
{
p.StandardInput.WriteLine(cmd[i].ToString());
}

}
//读取CMD显示的信息 并且调用显示消息方法、把信息传递给showMessage方法用来显示到textbox。
public void form()
{

string strRst = p.StandardOutput.ReadToEnd();
this.textBox1.BeginInvoke(new System.EventHandler(showMessage), strRst);
}

//在控件textbox上显示消息的方法
private void showMessage(object o, System.EventArgs e)
{

this.textBox1.Text = o.ToString();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐