可以用API,不过要有详细的说明

解决方案 »

  1.   

    '检测本机是否联入互联网,以及以什么形式联入Option Explicit
    '检测本机是否联入互联网,以及以什么形式联入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 LongPrivate 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 EnumPrivate 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
        
        On Error Resume Next
        
        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 FunctionPublic Function IsInNet() As Boolean    '检测是否已经以及使用什么方法连接到Internet
        Dim bConnected As Boolean
        Dim eR As Long
        Dim sName As String
        Dim sMsg As String
        
        bConnected = InternetConnected(eR, sName)    '根据获得的结果输出
        If (eR And INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM Then
            sMsg = sMsg & "使用modem连接到Internet."
        End If    If (eR And INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN Then
            sMsg = sMsg & "使用内部网连接到Internet."
        End If    If (eR And INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY Then
            sMsg = sMsg & "通过代理服务器连接到Internet."
        End If    If (eR And INTERNET_CONNECTION_OFFLINE) = INTERNET_CONNECTION_OFFLINE Then
            sMsg = sMsg & "现在连接处于离线状态."
        End If    If (eR And INTERNET_CONNECTION_CONFIGURED) = INTERNET_CONNECTION_CONFIGURED Then
            sMsg = sMsg & "连接已经被设定."
        Else
            sMsg = sMsg & "没有设定好的连接."
        End If    If (eR And INTERNET_RAS_INSTALLED) = INTERNET_RAS_INSTALLED Then
            sMsg = sMsg & "本机已经安装了远程访问服务功能."
        End If
        
        MsgBox sMsg
        
        IsInNet = bConnected
      
    End Function
    Sub Main()
        If IsInNet Then
            MsgBox "connected!"
        Else
            MsgBox "no connected!"
        End If
    End Sub
      

  2.   

    怎么没用啊,它一直提示connected,即使我把网线给拔了。怎么办啊?
      

  3.   

    用一定时器,定时检测
    If IsInNet Then
            MsgBox "connected!"
        Else
            MsgBox "no connected!"
        End If
      

  4.   

    如果我把网线给拔了,她也connect,如果我把本地连接给禁用了,她就"no connected"
      

  5.   

    还是不行,我的用途是:
    我用MAPI写了一个发送电子邮件的小程序,我想在发送和接受邮件前检测一下网络.该如何解决呢?
      

  6.   

    在发送和接受邮件前,检测一下网络
    If IsInNet Then
            MsgBox "connected!"
        Else
            MsgBox "no connected!"
        End If
      

  7.   

    ping 吧, ping 202.101.224.68 吧, 江西电信网关
    API IcmpCreateFile , IcmpSendEcho, IcmpCloseHandle