Results 1 to 4 of 4

Thread: Detecting Internet Connection

  1. #1
    Guest

    Post

    How can I check if there is an active internet connection? It needs to work on a LAN going through a proxy server...

    I've tried
    http://www.vb-world.net/tips/tip27.html

    Which doesn't work, but one of the replies mentioned using

    Code:
    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
    but I have no idea what values to provide for all the arguments this function requires...

    Help!!

    ------------------
    Matthew Ralston
    E-Mail: [email protected]
    ICQ: 31422892
    Web Site: My Home Page
    AKA: ...::: The Fragmeinster :::... (On Quake 3 World Forums)

    Sorry about my English, but my Scouse is dead good!

  2. #2
    New Member
    Join Date
    Oct 1999
    Posts
    9

    Post

    OK here is a module I found that should help you out. It works with systems having installed MSIE4 or above:
    '--------------------------------------------
    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 Long

    Public 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

    Public 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
    '--------------------------------------------
    To try this, on a form add a cmd-button and multiline txt-box and enter this:
    '----------------------------
    Private Sub Command1_Click()
    Dim eR As EIGCInternetConnectionState
    Dim sMsg As String
    Dim sName As String
    Dim bConnected As Boolean

    ' Determine whether we have a connection:
    bConnected = InternetConnected(eR, sName)

    ' The connection state info parameter rovides 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
    '-------------------------------------------
    sorry if the spacing's off it was pasted from VB

  3. #3
    Guest

    Post

    Thanks...it seems to work for me, however I cannot gaurantee that the target machines will have IE4/5. It's my personal favourite, but most use Netscape 3/4...

    ------------------
    Matthew Ralston
    E-Mail: [email protected]
    ICQ: 31422892
    Web Site: My Home Page
    AKA: ...::: The Fragmeinster :::... (On Quake 3 World Forums)

    Sorry about my English, but my Scouse is dead good!

  4. #4
    Member
    Join Date
    Jan 2000
    Location
    Launceston, Tasmania, Australia
    Posts
    44

    Post

    this works for me and I am on a proxy:

    'module code

    Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long
    Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long

    Public Const RAS95_MaxEntryName = 256
    Public Const RAS95_MaxDeviceType = 16
    Public Const RAS95_MaxDeviceName = 32

    Public Type RASCONN95
    dwSize As Long
    hRasCon As Long
    szEntryName(RAS95_MaxEntryName) As Byte
    szDeviceType(RAS95_MaxDeviceType) As Byte
    szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type

    Public Type RASCONNSTATUS95
    dwSize As Long
    RasConnState As Long
    dwError As Long
    szDeviceType(RAS95_MaxDeviceType) As Byte
    szDeviceName(RAS95_MaxDeviceName) As Byte
    End Type

    '**** Determines if there is an internet connection ****
    Function IsConnected() As Boolean
    Dim TRasCon(255) As RASCONN95
    Dim lg As Long
    Dim lpcon As Long
    Dim RetVal As Long
    Dim Tstatus As RASCONNSTATUS95


    TRasCon(0).dwSize = 412
    lg = 256 * TRasCon(0).dwSize

    RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)
    If RetVal <> 0 Then
    MsgBox "ERROR"
    Exit Function
    End If


    Tstatus.dwSize = 160
    RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
    If Tstatus.RasConnState = &H2000 Then
    IsConnected = True
    Else
    IsConnected = False
    End If

    End Function


    and to call in your form

    if isconnected = true then
    whateveryouwant
    end if



    ------------------
    Mooose

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width