新聞中心
C#執(zhí)行ping命令

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、下花園網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、下花園網(wǎng)絡(luò)營銷、下花園企業(yè)策劃、下花園品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供下花園建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
首先,我們用使用Process類,來創(chuàng)建獨立的進(jìn)程,導(dǎo)入System.Diagnostics,using System.Diagnostics;
實例一個Process類,啟動一個獨立進(jìn)程Process p = new Process();
Process類有一個StartInfo屬性,這個是ProcessStartInfo類,包括了一些屬性和方法。
下面我們用到了他的幾個屬性:
◆設(shè)定程序名p.StartInfo.FileName = "cmd.exe";
◆關(guān)閉Shell的使用p.StartInfo.UseShellExecute = false;
◆重定向標(biāo)準(zhǔn)輸入p.StartInfo.RedirectStandardInput = true;
◆重定向標(biāo)準(zhǔn)輸出p.StartInfo.RedirectStandardOutput = true;
◆重定向錯誤輸出p.StartInfo.RedirectStandardError = true;
◆設(shè)置不顯示窗口p.StartInfo.CreateNoWindow = true;
上面幾個屬性的設(shè)置是比較關(guān)鍵的一步。
既然都設(shè)置好了那就啟動進(jìn)程吧,p.Start();
C#執(zhí)行ping命令,輸入要執(zhí)行ping命令,這里就是ping了,
p.StandardInput.WriteLine("ping -n 1 www.iwebtrados.com.cn");
p.StandardInput.WriteLine("exit");
從輸出流獲取命令執(zhí)行結(jié)果,string strRst = p.StandardOutput.ReadToEnd();
利用C#執(zhí)行ping命令
這里我寫的是一個窗體程序。首先添加textbox,listbox,button控件,其中textbox錄入域名或IP,listbox顯示結(jié)果.
在button1_click事件鍵入
- privatevoidbutton1_Click(objectsender,EventArgse)
- {
- Pingp1=newPing();//只是演示,沒有做錯誤處理
- PingReplyreply=p1.Send(this.textBox1.Text);//阻塞方式
- displayReply(reply);//顯示結(jié)果
- }
- privatevoiddisplayReply(PingReplyreply)//顯示結(jié)果
- {
- StringBuildersbuilder;
- if(reply.Status==IPStatus.Success)
- {
- sbuilder=newStringBuilder();
- sbuilder.Append(string.Format("Address:{0}",reply.Address.ToString()));
- sbuilder.Append(string.Format("RoundTriptime:{0}",reply.RoundtripTime));
- sbuilder.Append(string.Format("Timetolive:{0}",reply.Options.Ttl));
- sbuilder.Append(string.Format("Don'tfragment:{0}",reply.Options.DontFragment));
- sbuilder.Append(string.Format("Buffersize:{0}",reply.Buffer.Length));
- listBox1.Items.Add(sbuilder.ToString());
- }
- }
也可以做異步的處理,修改button1_click,并添加PingCompletedCallBack方法
- privatevoidbutton1_Click(objectsender,EventArgse)
- {
- Pingp1=newPing();
- p1.PingCompleted+=newPingCompletedEventHandler(this.PingCompletedCallBack);
- //設(shè)置PingCompleted事件處理程序
- p1.SendAsync(this.textBox1.Text,null);
- }
- privatevoidPingCompletedCallBack(objectsender,PingCompletedEventArgse)
- {
- if(e.Cancelled)
- {
- listBox1.Items.Add("PingCanncel");
- return;
- }
- if(e.Error!=null)
- {
- listBox1.Items.Add(e.Error.Message);
- return;
- }
- StringBuildersbuilder;
- PingReplyreply=e.Reply;
- if(reply.Status==IPStatus.Success)
- {
- sbuilder=newStringBuilder();
- sbuilder.Append(string.Format("Address:{0}",reply.Address.ToString()));
- sbuilder.Append(string.Format("RoundTriptime:{0}",reply.RoundtripTime));
- sbuilder.Append(string.Format("Timetolive:{0}",reply.Options.Ttl));
- sbuilder.Append(string.Format("Don'tfragment:{0}",reply.Options.DontFragment));
- sbuilder.Append(string.Format("Buffersize:{0}",reply.Buffer.Length));
- listBox1.Items.Add(sbuilder.ToString());
- }
- }
【編輯推薦】
- 淺析C# ArrayList
- C#對象初始化學(xué)習(xí)總結(jié)
- 使用C#正則表達(dá)式匹配相關(guān)字符串
- C#改寫方法學(xué)習(xí)筆記
- 概述C#加框和消框
名稱欄目:概述C#執(zhí)行ping命令
本文來源:http://fisionsoft.com.cn/article/djsodpp.html


咨詢
建站咨詢
