我想要实现以下功能:
if 网络开通 then
    msgbox"网络连接中!!"
else
    msgbox"网络已经断开连接"
endif如何实现````谢过了````

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3999/3999124.xml?temp=.8597528
      

  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  
    功能  
    判断是否连接到Internet并获取连接的方式  
    语法  
    InternetConnected ([eConnectionInfo],[sConnectionName])  
    参数  
    eConnectionInfo:返回的连接信息
    sConnectionName:返回的连接名称  
    返回值  
    连接时返回真
    未连接时返回假  
    样例  
        
        Sub main()
         Dim bConnected As Boolean
         Dim eR As EIGCInternetConnectionState
         Dim sName As String
         Dim sMsg As String
         
          '检测是否已经以及使用什么方法连接到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
        Debug.Print sMsg
        End Sub  
    说明  
    枚举值 EIGCInternetConnectionState的含义在示例中已经一一列出。
      

  3.   

    检测是否连接到Internet以及是通过何种方式(Modem,LAN,Proxy)连接到Internet的。
    =============================================================================
    form1
    +text1
    ------
    Dim eR As EIGCInternetConnectionState
    Dim sMsg As String
    Dim sName As String
    Dim bConnected As BooleanPrivate Sub Form_Load()
        ' Determine whether we have a connection:
        bConnected = InternetConnected(eR, sName)    ' The connection state info parameter provides details
        ' about how we connect:
        If (eR And INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM Then
            sMsg = sMsg & "Connection uses a modem." & vbCrLf
        End If
        If (eR And INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN Then
            sMsg = sMsg & "Connection uses LAN." & vbCrLf
        End If
        If (eR And INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY Then
            sMsg = sMsg & "Connection is via Proxy." & vbCrLf
        End If
        If (eR And INTERNET_CONNECTION_OFFLINE) = INTERNET_CONNECTION_OFFLINE Then
            sMsg = sMsg & "Connection is Off-line." & vbCrLf
        End If
        If (eR And INTERNET_CONNECTION_CONFIGURED) = INTERNET_CONNECTION_CONFIGURED Then
            sMsg = sMsg & "Connection is Configured." & vbCrLf
        Else
            sMsg = sMsg & "Connection is Not Configured." & vbCrLf
        End If
        If (eR And INTERNET_RAS_INSTALLED) = INTERNET_RAS_INSTALLED Then
            sMsg = sMsg & "System has RAS installed." & vbCrLf
        End If
       
       ' Display the connection name and info:
        If bConnected Then
            Text1.Text = "Connected: " & sName & vbCrLf & vbCrLf & sMsg
        Else
            Text1.Text = "Not Connected: " & sName & vbCrLf & vbCrLf & sMsg
        End If
    End Sub================
    Module1
    --------
    Public 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 LongPublic 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 EnumPublic Property Get 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 Property