SUMMARY
This step-by-step article describes how to determine the
connected state of your local system by using the
InternetGetConnectedState function that the Microsoft Windows Internet
(WinINet) API provides.
This article also
describes how to initiate an Internet connection and how to end an Internet
connection by using the
InternetDial WinINet API function and by using the
InternetHangUp WinINet API function.
The WinINet API is a set of
functions that enables applications to interact with Gopher, with File Transfer
Protocol (FTP), and with Hypertext Transfer Protocol (HTTP) to access many resources
on the Internet. The
InternetGetConnectedState function returns
True or
False based on whether a
connection exists.
After a call to the
InternetGetConnectedState function, the
lpdwFlags parameter contains a predefined
value that provides more information about the connection. For example, the value that
IpdwFlags contains may indicate that the connection is a local area network (LAN) connection, a modem
connection, or another type of connection. You can infer whether connection exists from the
return value of the
InternetGetConnectedState function.
When the
InternetGetconnectionState function call returns
True, a network connection exists.
However, this does not guarantee that you have access to
data or that you have access to Web sites across the network.
The
InternetDial function initiates a connection to the Internet by using a modem.
The
lpszConnectoid parameter specifies the name of the dial-up connection that the
InternetDial function uses. You can use the
InternetHangUp WinINet API function to instruct the modem to end the connection
that the
dwConnection parameter specifies.
back to the top Step-by-Step Example
- Start Microsoft Visual Studio .NET or Microsoft Visual Studio 2005.
- On the File menu, point to
New, and then click Project.
- Under Project types, click Visual
Basic Projects.
Note In Visual Studio 2005, click Visual Basic under Project Types. - Under Templates, click Windows
Application.
By default, Form1 is created. - Right-click Form1, and then click
View Code.
- Add the following declaration statements to the Form1
class:
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Int32, _
ByVal dwReserved As Int32) As Boolean
Private Declare Function InternetDial Lib "Wininet.dll" (ByVal hwndParent As IntPtr, _
ByVal lpszConnectoid As String, ByVal dwFlags As Int32, ByRef lpdwConnection As Int32, _
ByVal dwReserved As Int32) As Int32
Private Declare Function InternetHangUp Lib "Wininet.dll" _
(ByVal lpdwConnection As Int32, ByVal dwReserved As Int32) As Int32
Private Enum Flags As Integer
'Local system uses a LAN to connect to the Internet.
INTERNET_CONNECTION_LAN = &H2
'Local system uses a modem to connect to the Internet.
INTERNET_CONNECTION_MODEM = &H1
'Local system uses a proxy server to connect to the Internet.
INTERNET_CONNECTION_PROXY = &H4
'Local system has RAS installed.
INTERNET_RAS_INSTALLED = &H10
End Enum
'Declaration Used For InternetDialUp.
Private Enum DialUpOptions As Integer
INTERNET_DIAL_UNATTENDED = &H8000
INTERNET_DIAL_SHOW_OFFLINE = &H4000
INTERNET_DIAL_FORCE_PROMPT = &H2000
End Enum
Private Const ERROR_SUCCESS = &H0
Private Const ERROR_INVALID_PARAMETER = &H87
Private mlConnection As Int32
- On the View menu, click
Designer.
- Add a Button control to Form1.
- Right-click Button1, and then click
Properties.
- In the Properties window, modify the Text
property of the Button1 control to Detect
Connection.
- Double-click Detect Connection, and then
add the following code in the Button1_Click event handler:
Dim lngFlags As Long
If InternetGetConnectedState(lngFlags, 0) Then
'connected.
If lngFlags And Flags.INTERNET_CONNECTION_LAN Then
'LAN connection.
MsgBox("LAN connection.")
ElseIf lngFlags And Flags.INTERNET_CONNECTION_MODEM Then
'Modem connection.
MsgBox("Modem connection.")
ElseIf lngFlags And Flags.INTERNET_CONNECTION_PROXY Then
'Proxy connection.
MsgBox("Proxy connection.")
End If
Else
'not connected.
MsgBox("Not connected.")
End If
- Add another Button control to
Form1.
- Right-click Button2, and then click
Properties.
- In the Properties window, change the Text
property of the Button2 control to Dial
Up.
- Double-click Dial Up, and then add the
following code in the Button2_Click event handler:
Dim DResult As Int32
DResult = InternetDial(Me.Handle, "My Connection", DialUpOptions.INTERNET_DIAL_FORCE_PROMPT, mlConnection, 0)
If (DResult = ERROR_SUCCESS) Then
MessageBox.Show("Dial Up Successful", "Dial-Up Connection")
Else
MessageBox.Show("UnSuccessFull Error Code" & DResult, "Dial-Up Connection")
End If
Note Replace My Connection with the name of
the dial-up connection on your computer. - Add another Button control to
Form1.
- Right-click Button3, and then click
Properties.
- In the Properties window, modify the Text
property of the Button3 control to Hang
Up.
- Double-click Hang Up, and then add the
following code in the Button3_Click event handler:
Dim Result As Int32
If Not (mlConnection = 0) Then
Result = InternetHangUp(mlConnection, 0&)
If Result = 0 Then
MessageBox.Show("Hang up successful", "Hang Up Connection")
Else
MessageBox.Show("Hang up NOT successful", "Hang Up Connection")
End If
Else
MessageBox.Show("You must dial a connection first!", "Hang Up Connection")
End If
- On the File menu, click Save
All to save the project.
- On the Debug menu, click
Start to run the application.
back to the topVerify That It Works
- Run the application that you created in the "Step-by-Step
Example" section of this article.
Form1 is displayed. - Click Detect Connection, and then notice
the current connected state of your local computer.
- Click Dial Up.
The dial-up
connection dialog box is displayed. - Click Hang Up.
The Internet connection that you
established in step 3 ends.
back to the
top