整一个窗体,上面放个TextBox和Button.
TextBox里面输入IP地址,点击Button后,在另外一个TextBox里显示结果。我在网上查到不少资料,都是讲怎样在C#里调用命令啥的。
就用System.Diagnostics.Process调用命令。
但是所有的例子都是用“Ping”命令。同样的程序,我用“Ping”时,确实可以把结果获得并放到TextBox里。但是,换做“Tracert”时,就完不成了。而且比较奇怪的是,一点按钮就又弹出个一模一样的窗体,
这是为什么啊?有没有弄过的教教偶?谢过啦先~~~~~~~
TextBox里面输入IP地址,点击Button后,在另外一个TextBox里显示结果。我在网上查到不少资料,都是讲怎样在C#里调用命令啥的。
就用System.Diagnostics.Process调用命令。
但是所有的例子都是用“Ping”命令。同样的程序,我用“Ping”时,确实可以把结果获得并放到TextBox里。但是,换做“Tracert”时,就完不成了。而且比较奇怪的是,一点按钮就又弹出个一模一样的窗体,
这是为什么啊?有没有弄过的教教偶?谢过啦先~~~~~~~
解决方案 »
- 如何获得数组中所有元素的某一字段组成的数组
- linq做报表的数据源?难道只能用数据集?
- 各位老大,用longraw格式存在oracle的图片怎样在c#中显示出来?
- javascript的问题:有关[0,0]的写法的问题
- 怎样将DataGrid中将已有的日期型字段置空?
- 关于自制控件设计中移动时变色问题
- 关于SQL表的记录搜索问题
- 如何在WinForm的不同窗体间传输数据啊?
- linkbuttom有没有类似target的属性,怎么样才能达到同样的效果??
- 有没有高手 做过不规则的控件。
- m_objSheet.PageSetup.PaperSize= papersize不知道如何填
- gentle不支持无主键的表
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow =true;
process.Start();
process.StandardInput.WriteLine("ping " + this.textBox1.Text);
process.StandardInput.WriteLine("exit");
string output = process.StandardOutput.ReadToEnd();
process.Close();
this.textBox2.Text = output;Ping 命令时,textBox2的最终结果是:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.D:\Tracert\Tracert\bin\Debug>ping www.sina.com.cn
Pinging antares.sina.com.cn [218.30.13.35] with 32 bytes of data:
Reply from 218.30.13.35: bytes=32 time=137ms TTL=49
Reply from 218.30.13.35: bytes=32 time=132ms TTL=49
Reply from 218.30.13.35: bytes=32 time=149ms TTL=49
Reply from 218.30.13.35: bytes=32 time=181ms TTL=49
Ping statistics for 218.30.13.35:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 132ms, Maximum = 181ms, Average = 149ms
D:\Tracert\Tracert\bin\Debug>exitTracert 命令时:弹出一个新的窗体,然后就象死机了一样
最开始的那个窗口里的textBox2里的内容是:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
D:\Tracert\Tracert\bin\Debug>tracert www.sina.com.cn
D:\Tracert\Tracert\bin\Debug>exit中间的tracert内容都没有了而且还弹出个新窗口,这是最让我难以容忍的事。
Info.Arguments = textBox1.Text;
Info.FileName = "Tracert.exe";
Info.RedirectStandardOutput = true;
Info.UseShellExecute = false;
Process pro = Process.Start(Info);
MessageBox.Show(pro.StandardOutput.ReadToEnd());
System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
Info.Arguments = textBox1.Text; // 这是你要测试的ip地址
Info.FileName = "Tracert.exe";
Info.RedirectStandardOutput = true;
Info.UseShellExecute = false;
Process pro = Process.Start(Info);
MessageBox.Show(pro.StandardOutput.ReadToEnd());// pro.StandardOutput.ReadToEnd()这是运行结果Info.RedirectStandardOutput = true;
Info.UseShellExecute = false;
这两句是关键,把输出结果重定向
你可以因ping而不能直接用tracert的原因非常可能是权限的问题..