用C#写一个类似cmd的控制台程序,实现ping的功能!!!(求完整程序源代码!)

用C#写一个类似cmd的控制台程序,实现ping的功能!!!(求完整程序源代码!),第1张

using System

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 Sub

3)运行结果

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命令就正碰族常运行了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8216319.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存