using System.Net
using System.Net.NetworkInformation
class Program
{
static void Main(string[] args)
{
int count = 4
IPAddress addr = IPAddress.Parse("220.181.111.86")
Ping ping = new Ping()
long timeSum = 0
int succCount = 0
//发送
Console.WriteLine("正在ping {0}", addr)
for (int i = 0i <count++i)
{
山扰 PingReply pr = ping.Send(addr)
if (pr.Status == IPStatus.TimedOut)
Console.WriteLine("超时")
else if (pr.Status == IPStatus.Success)
{
Console.WriteLine("延时:{0}毫秒", pr.RoundtripTime)
++succCount
timeSum += pr.RoundtripTime
}
}
if (timeSum != 0)
Console.WriteLine("平均延时{0}毫秒,丢包率{1}%", 1.0 * timeSum / succCount, (count - succCount) * 100.0 / count)
else
Console.WriteLine("丢包率100%")
埋唯仿 return
弯纤 }
}
利用VB的Shell执行PING命令,将PING的输出重定向到文件 c:\r.txt,然后读取c:\r.txt文件显示运行结果。
由于VB中的Shell命令是异步执行的,即调用Shell后,没等Shell执行完毕,程序就继续执行下一条语句。为此,程序使用了系统API来判断Shell是否结束。
1)窗体及控件
2)代码
Option Explicit Private Declare Function GetExitCodeProcess Lib "kernel32" ( _ 册悉 ByVal hProcess As Long, _ lpExitCode As Long) As Long Private Declare Function CloseHandle Lib "kernel32" ( _ ByVal hObject As Long) As Long Private Declare Function OpenProcess Lib "kernel32" ( _ ByVal dwDesiredAccess As Long, _ ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Const PROCESS_QUERY_INFORMATION = &H400Const STILL_ALIVE = &H103 Private Sub Command1_Click() If Trim(Text1.Text) = "" Then MsgBox "请输入域名或IP地址", vbInformation + vbOKOnly Text1.SetFocus Exit Sub End If '命令执行期间禁用命令按钮 Command1.Enabled = False '调用Shell执行Ping,执行结果重定向到C:\r.txt中 Dim pid As Long pid = Shell("cmd.exe /C Ping " & Text1.Text & " > c:\r.txt", vbHide) ' 提示 Text2.Text = "正在执行Ping " & Text1.Text & " ..." '等待Shell执行结束 Dim hProc As Long hProc = OpenProcess(PROCESS_QUERY_INFORMATION, 0, pid) Dim ExitCode As Long Do Call GetExitCodeProcess(hProc, ExitCode) DoEvents Loop While ExitCode = STILL_ALIVE '清空,准备显示结果 Text2.Text = "" '打开 C:\r.txt文件 Open "c:\r.txt" For Input As #1 Dim strLine As String 野庆 Do Until EOF(1) Line Input #1, strLine '显示执行结果 Text2.Text = Text2.Text & strLine & vbNewLine Loop '关闭文件 州脊乎 Close #1 '删除C:\r.txt On Error Resume Next Kill "c:\r.txt" On Error GoTo 0 '使能命令按钮 Command1.Enabled = TrueEnd Sub Private Sub Form_Load() Text1.Text = "" Text2.Text = ""End Sub3)运行结果
Ping baidu.com 正在执行中 ....
Ping baidu.com执行结果
不能将文件名保存为ping.bat,因为ping命令一般是电脑自带的程序,cmd运行时容易出错。此正以下步骤为windows7为例。
1、首先在电脑上新建一个文本文档,如图所示。
2、文档建好后,用鼠标左键双击打开此文件,如图所示。
3、然后在文档编辑页面,输入“ping www.163.com”。
4、然后在文件的下拉菜单中,点击“另存为”选项。
5、然后在另存为窗口,将文件名为test.dat,保存类型设置为“所有文件”,进笑扒弊行保存。
6、接着用鼠标双击刚刚保存好的文件,如图所示。
7、完成以上设置后,ping命令就正碰族常运行了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)