如题

解决方案 »

  1.   


    Private Declare Function InternetGetConnectedStateExA Lib "wininet" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As Long
    Private Function InternetOnline() As Boolean
        On Error Resume Next
        InternetOnline = CBool(InternetGetConnectedStateExA(0&, vbNull, 64, 0&) = 1)
        Err.Clear
        DoEvents
    End FunctionPrivate Sub Timer1_Timer()
        If InternetOnline Then
            '网络正常连接
        Else
            '网络断开
        End If
    End Sub
      

  2.   

    那interval设置多少合适?设置半分钟可以吗?
      

  3.   

    它是否像ping一样,根据是否接受到包,来判断网络的通和断,是吗?
      

  4.   

    我把interval设置成10秒,程序跑了十几分钟,一直没出什么问题。检查一下你的网络或者其它代码吧。另外这里介绍了几种判断网络状态的方法,可以参考:
    http://www.77new.cn/program/f/1173293079453/001/001/43657.html