Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Visual Basic [VB] (http://www.go4expert.com/articles/visual-basic-tutorials/)
-   -   Test User's Internet Connection in VB (http://www.go4expert.com/articles/test-users-internet-connection-vb-t2557/)

pradeep 15Jan2007 16:45

Test User's Internet Connection in VB
 
1 Attachment(s)
As more and more of your applications become distributed across the Internet, you'll no doubt want to build in a way to determine if the current user is actually connected to the Web. Fortunately, the Windows API offers a quick and easy way to do so with the InternetGetConnectedState() function.

This function uses the declaration syntax seen here:
Code: VB

Private Declare Function InternetGetConnectedState Lib "wininet" (ByRef dwflags As Long, _
  ByVal dwReserved As Long) As Long

The function returns 1 if a connection exists and 0 if not. You can easily convert these values to their Boolean equivalents in VB. After the test, the dwflags parameter will indicate what type of connection the user has. You use bitwise comparisons to test for specific values. The dwflags constants are as follows:

Code: VB

Private Const CONNECT_LAN As Long = &H2
  Private Const CONNECT_MODEM As Long = &H1
  Private Const CONNECT_PROXY As Long = &H4
  Private Const CONNECT_OFFLINE As Long = &H20
  Private Const CONNECT_CONFIGURED As Long = &H40

You can ignore the dwReserved parameter.

To see how this function works, launch a new VB project, and drop a Command Button onto the default form. Right-click on the form and select View Code from the shortcut menu. When the IDE opens the Code window, enter the InternetGetConnectedState() function and constant declarations as shown above. Then, enter the following procedures:

Code: VB

Public Function IsWebConnected(Optional ByRef ConnType As String) As Boolean
      Dim dwflags As Long
      Dim WebTest As Boolean
      ConnType = ""
      WebTest = InternetGetConnectedState(dwflags, 0&)
      Select Case WebTest
          Case dwflags And CONNECT_LAN: ConnType = "LAN"
          Case dwflags And CONNECT_MODEM: ConnType = "Modem"
          Case dwflags And CONNECT_PROXY: ConnType = "Proxy"
          Case dwflags And CONNECT_OFFLINE: ConnType = "Offline"
          Case dwflags And CONNECT_CONFIGURED: ConnType = "Configured"
          Case dwflags And CONNECT_RAS: ConnType = "Remote"
      End Select
      IsWebConnected = WebTest
  End Function
  Private Sub Command1_Click()
      Dim msg As String
      If IsWebConnected(msg) Then
          msg = "You are connected to the Internet via: " & msg
      Else
          msg = "You are not connected to the Internet."
      End If
     
      MsgBox msg, vbOKOnly, "Internet Connection Status"
  End Sub

Run this program and click the form's command button, the message box tells you if you're connected to the Internet and by what type of connection.

su_jay300 10Mar2007 10:11

Re: Test User's Internet Connection in VB
 
dear friends

this code is realy great i thanks to mr pradeep lots.

sujay kumar

pradeep 10Mar2007 10:15

Re: Test User's Internet Connection in VB
 
Welcome sujay!

Happy programming!

jodarox 6Nov2007 10:48

Re: Test User's Internet Connection in VB
 
Dear Sir,
This code is great but can I make this connection for example to get data from our server for instance? thanks more power and regards.

pradeep 6Nov2007 11:18

Re: Test User's Internet Connection in VB
 
For that purpose you'll need to use Winsock!

jodarox 6Nov2007 16:01

Re: Test User's Internet Connection in VB
 
winsock I never used that control yet can you make a simple code for me or how can i access that control and how can i use it? thanks for your reply and regards.

coderzone 12Nov2007 12:13

Re: Test User's Internet Connection in VB
 
Nice one.

sreeja 10Dec2007 14:58

Re: Test User's Internet Connection in VB
 
An easy way is with Internet Get Connected State() function.As more and more of your applications become distributed across the Internet, you'll no doubt want to build in a way to determine if the current user is actually connected to the Web. Fortunately, the Windows API offers a quick and easy way to do so with the InternetGetConnectedState() function.

baluviswanath 3Sep2008 18:55

Re: Test User's Internet Connection in VB
 
Hi Pradeep,

I tried your script, but would you be able to help me out with a VBS for testing the Internet access to a specifc URL using a proxy ? Like the http.open method along with response and setproxy functions.....

Thanks....

justezekiel 11Oct2008 14:50

Re: Test User's Internet Connection in VB
 
Hello,

I'm kinda new in VB6.0 and I'm trying to make a program that can indicate whether a computer is connected to a LAN or not at all times. Can anyone help? Thanks!!!


All times are GMT +5.5. The time now is 07:55.