怎么样用vb实现adsl断网、自动拨号?

解决方案 »

  1.   

    Const INTERNET_DIALSTATE_DISCONNECTED = 1
    Const INTERNET_AUTODIAL_FORCE_ONLINE = 1
    Const INTERNET_AUTODIAL_FORCE_UNATTENDED = 2
    Const INTERNET_DIAL_UNATTENDED = &H8000Dim iHandle As LongPrivate Declare Function InternetDial Lib "wininet.dll" ( _
        ByVal hwndParent As Long, _
        ByVal lpszConnectoid As String, _
        ByVal dwFlags As Long, _
        lpdwConnection As Long, _
        ByVal dwReserved As Long) As Long
        
    '参数dwConnection指定拨号连接句柄
    Private Declare Function InternetHangUp Lib "wininet.dll" _
        (ByVal dwConnection As Long, _
        ByVal dwReserved As Long) As Long
        
    Private Declare Function InternetAutodial Lib "wininet.dll" _
            (ByVal dwFlags As Long, ByVal dwReserved As Long) As Long
            
    Private Declare Function InternetAutodialHangup Lib "wininet.dll" _
            (ByVal dwReserved As Long) As Long
        
    Private Sub Command1_Click()
        '建立名称为163的连接,连接成功后连接句柄保存在iHandel中
        InternetDial Me.hWnd, "163", INTERNET_AUTODIAL_FORCE_UNATTENDED, iHandle, 0
    End SubPrivate Sub Command2_Click()
        If iHandle <> 0 Then
            InternetHangUp iHandle, 0
            iHandle = 0
        End If
    End SubPrivate Sub Form_Load()
        Command1.Caption = "拨号"
        Command2.Caption = "断开"
    End Sub
      

  2.   

    参考一下这个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
      

  3.   

    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