ローカル システムの接続状態と、Visual Basic .NET または Visual Basic 2005 を使用してインターネット接続を開始または終了する方法を決定する
この記事では、ローカル システムの接続状態を判断する方法と、Visual Basic .NET または Visual Basic 2005 を使用してインターネット接続を開始または終了する方法について説明します。
元の製品バージョン: Visual Studio
元の KB 番号: 821770
概要
この詳細な記事では、Microsoft Windows Internet (WinINet) API が提供する関数を使用 InternetGetConnectedState
して、ローカル システムの接続状態を判断する方法について説明します。 この記事では、インターネット接続を開始する方法と、API 関数と API 関数を使用してインターネット接続を InternetDial
WinINet
終了する InternetHangUp
WinINet
方法についても説明します。
WinINet
API は、アプリケーションが Gopher、ファイル転送プロトコル (FTP)、ハイパーテキスト転送プロトコル (HTTP) を使用してインターネット上の多くのリソースにアクセスできるようにする一連の関数です。 関数は InternetGetConnectedState
、接続が存在するかどうかに基づいて True または False を返します。 関数の InternetGetConnectedState
呼び出し後、 lpdwFlags パラメーターには、接続に関する詳細情報を提供する定義済みの値が含まれます。 たとえば、 IpdwFlags に含まれている値は、接続がローカル エリア ネットワーク (LAN) 接続、モデム接続、または別の種類の接続であることを示している可能性があります。 関数の戻り値 InternetGetConnectedState
から接続が存在するかどうかを推測できます。
関数呼び出しが InternetGetconnectionState
True を返すと、ネットワーク接続が存在します。 ただし、データにアクセスできる、またはネットワーク経由で Web サイトにアクセスできる保証はありません。
関数は InternetDial
、モデムを使用してインターネットへの接続を開始します。 lpszConnectoid パラメーターは、関数が使用するダイヤルアップ接続の名前をInternetDial
指定します。 API 関数を InternetHangUp
WinINet
使用して、 dwConnection パラメーターが指定する接続を終了するようにモデムに指示できます。
ステップ バイ ステップの例
Microsoft Visual Studio .NET または Microsoft Visual Studio 2005 を起動します。
[ ファイル] メニューの [ 新規] をポイントし、[ プロジェクト] をクリックします。
[ プロジェクトの種類] で、[ Visual Basic プロジェクト] をクリックします。
注:
Visual Studio 2005 で、[プロジェクトの種類] で [Visual Basic] をクリックします。
[ テンプレート] の [ Windows アプリケーション] をクリックします。
既定では、Form1 が作成されます。
[Form1] を右クリックし、[コードの表示] をクリックします。
Form1 クラスに次の宣言ステートメントを追加します。
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
[表示] メニューの [Designer] をクリックします。
Form1 に Button コントロールを追加します。
Button1 を右クリックし、[プロパティ] をクリックします。
プロパティ ウィンドウで、Button1 コントロールの Text プロパティを [接続の検出] に変更します。
[接続の 検出] をダブルクリックし、 Button1_Click イベント ハンドラーに次のコードを追加します。
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
別の Button コントロールを Form1 に追加します。
Button2 を右クリックし、[プロパティ] をクリックします。
プロパティ ウィンドウで、Button2 コントロールの Text プロパティを Dial Up に変更します。
[ ダイヤルアップ] をダブルクリックし、 Button2_Click イベント ハンドラーに次のコードを追加します。
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
注:
[マイ接続] を、コンピューター上のダイヤルアップ接続の名前に置き換えます。
別の Button コントロールを Form1 に追加します。
Button3 を右クリックし、[プロパティ] をクリックします。
プロパティ ウィンドウで、Button3 コントロールの Text プロパティを [ハングアップ] に変更します。
[ ハングアップ] をダブルクリックし、 Button3_Click イベント ハンドラーに次のコードを追加します。
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
[ ファイル ] メニューの [ すべて保存 ] をクリックして、プロジェクトを保存します。
[ デバッグ ] メニューの [ スタート ] をクリックして、アプリケーションを実行します。
tt が動作することを確認する
この記事の 「ステップ バイ ステップの例 」セクションで作成したアプリケーションを実行します。
Form1 が表示されます。
[ 接続の検出] をクリックし、ローカル コンピューターの現在の接続状態を確認します。
[ ダイヤルアップ] をクリックします。
[ダイヤルアップ接続] ダイアログ ボックスが表示されます。
[ ハングアップ] をクリックします。
手順 3 で確立したインターネット接続が終了します。
関連情報
詳細については、次の Web サイトを参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示