Results 1 to 2 of 2

Thread: API to check for DialUp Connection Status

  1. #1

    Thread Starter
    Hyperactive Member rplcmint's Avatar
    Join Date
    Jan 2001
    Location
    Stockton, CA
    Posts
    333

    Unhappy API to check for DialUp Connection Status

    I need to check to see the status of a Dial Up connection. I am making a connection to the internet and then developing a VPN. I want to ping the system to see that I have a network or check the connection status to see if it is hanging. If the dialup connection is bad, I will disconnect and then dial both DialUps again.

    I appreciate your input.

    Mike

  2. #2
    ricmitch_uk
    Guest
    How can I detect if there is an active internet connection?

    For programs that rely on connecting to the internet, it is very useful to know whether or not the computer has an active connection. Whenever Windows logs on to a dial-up connection, it changes a value in the registry. The following code demonstrates how to read this values to determine whether the computer is connected or not.

    Declarations

    You must put the following code into the declarations section of your project.

    Public Const ERROR_SUCCESS = 0&
    Public Const APINULL = 0&
    Public Const HKEY_LOCAL_MACHINE = &H80000002
    Public ReturnCode As Long

    Declare Function RegCloseKey Lib "advapi32.dll" (ByVal _
    hKey As Long) As Long

    Declare Function RegOpenKey Lib "advapi32.dll" Alias _
    "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As _
    String, phkResult As Long) As Long

    Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _
    "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName _
    As String, ByVal lpReserved As Long, lpType As Long, _
    lpData As Any, lpcbData As Long) As Long

    Code

    Public Function ActiveConnection() As Boolean
    Dim hKey As Long
    Dim lpSubKey As String
    Dim phkResult As Long
    Dim lpValueName As String
    Dim lpReserved As Long
    Dim lpType As Long
    Dim lpData As Long
    Dim lpcbData As Long
    ActiveConnection = False
    lpSubKey = "System\CurrentControlSet\Services\RemoteAccess"
    ReturnCode = RegOpenKey(HKEY_LOCAL_MACHINE, lpSubKey, _
    phkResult)

    If ReturnCode = ERROR_SUCCESS Then
    hKey = phkResult
    lpValueName = "Remote Connection"
    lpReserved = APINULL
    lpType = APINULL
    lpData = APINULL
    lpcbData = APINULL
    ReturnCode = RegQueryValueEx(hKey, lpValueName, _
    lpReserved, lpType, ByVal lpData, lpcbData)
    lpcbData = Len(lpData)
    ReturnCode = RegQueryValueEx(hKey, lpValueName, _
    lpReserved, lpType, lpData, lpcbData)

    If ReturnCode = ERROR_SUCCESS Then
    If lpData = 0 Then
    ActiveConnection = False
    Else
    ActiveConnection = True
    End If
    End If
    RegCloseKey (hKey)
    End If

    End Function

    Use

    Here is an example of how to use the ActiveConnection function.

    If ActiveConnection = True then
    Call MsgBox("You have an active connection.",vbInformation)
    Else
    Call MsgBox("You have no active connections.", vbInformation)
    End If
    For more information about accessing the registry, please check out our demo project.
    HTH

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