比如读取到了www.baidu.com的源代码就说明联网了
就继续运行下面的代码
如果没有联网就反复检查 不运行下面的代码 

解决方案 »

  1.   

    检查联网有现成的API,LZ这个方法似乎还可以?
      

  2.   

    'API函数定义 
        Dim eR As EIGCInternetConnectionState 
        Dim sMsg As String 
        Dim sName As String 
        Dim bConnected As Boolean 
         
         
        Private Declare Function InternetSetDialState Lib "wininet.dll" _ 
         (ByVal lpszConnectoid As String, ByVal dwState As Long, _ 
         ByVal dwReserved As Long) As Long 
         
         
        Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _ 
        (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _ 
        ByVal sProxyBypass As String, ByVal lFlags As Long) As Long 
         
         
        Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" _ 
         Alias "InternetGetConnectedStateExA" _ 
         (ByRef lpdwFlags As Long, _ 
         ByVal lpszConnectionName As String, _ 
         ByVal dwNameLen As Long, _ 
         ByVal dwReserved As Long _ 
         ) As Long 
        Private Enum EIGCInternetConnectionState 
         INTERNET_CONNECTION_MODEM = &H1& 
         INTERNET_CONNECTION_LAN = &H2& 
         INTERNET_CONNECTION_PROXY = &H4& 
         INTERNET_RAS_INSTALLED = &H10& 
         INTERNET_CONNECTION_OFFLINE = &H20& 
         INTERNET_CONNECTION_CONFIGURED = &H40& 
        End Enum 
         
         
        'InternetConnected 函数判断是否连接到Internet的函数 
        '获得是否以及通过何中方式连接到Internet上 
        Private Function InternetConnected(Optional ByRef eConnectionInfo _ 
         As EIGCInternetConnectionState, Optional ByRef _ 
         sConnectionName As String) As Boolean 
         
         Dim dwFlags As Long 
         Dim sNameBuf As String 
         Dim lR As Long 
         Dim iPos As Long 
         
         sNameBuf = String$(513, 0) 
         lR = InternetGetConnectedStateEx(dwFlags, sNameBuf, 512, 0&) 
         eConnectionInfo = dwFlags 
         iPos = InStr(sNameBuf, vbNullChar) 
         If iPos > 0 Then 
         sConnectionName = Left$(sNameBuf, iPos - 1) 
         ElseIf Not sNameBuf = String$(513, 0) Then 
         sConnectionName = sNameBuf 
         End If 
         InternetConnected = (lR = 1) 
        End Function 
         
         
        'InternetConnected 函数的调用 
         
         '检测是否已经以及使用什么方法连接到Internet 
         bConnected = InternetConnected(eR, sName) 
         
         
         '根据获得的结果输出 
         If (eR And INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM Then 
         sMsg = sMsg & "使用modem连接到Internet." & vbCrLf 
         End If 
         If (eR And INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN Then 
         sMsg = sMsg & "使用内部网连接到Internet." & vbCrLf 
         End If 
         If (eR And INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY Then 
         sMsg = sMsg & "通过代理服务器连接到Internet." & vbCrLf 
         End If 
         If (eR And INTERNET_CONNECTION_OFFLINE) = INTERNET_CONNECTION_OFFLINE Then 
         sMsg = sMsg & "现在连接处于离线状态." & vbCrLf 
         End If 
         If (eR And INTERNET_CONNECTION_CONFIGURED) = INTERNET_CONNECTION_CONFIGURED Then 
         sMsg = sMsg & "连接已经被设定." & vbCrLf 
         Else 
         sMsg = sMsg & "没有设定好的连接." & vbCrLf 
         End If 
         If (eR And INTERNET_RAS_INSTALLED) = INTERNET_RAS_INSTALLED Then 
         sMsg = sMsg & "本机已经安装了远程访问服务功能." & vbCrLf 
         End If 
         
         '显示连接名称 
         If bConnected Then 
         sMsg = "已连接到Internet,连接名称: " & sName & vbCrLf & vbCrLf & sMsg 
         Else 
         sMsg = "没有连接到Internet,连接名称: " & sName & vbCrLf & vbCrLf & sMsg 
         End If