無線LANの切断方法を記載します。
以下説明は、”Managed Wifi”を使用して行います。
実は現時点では、切断方法が無いので、ソースコードをダウンロードして切断のコードを追加してコンパイルする必要がある。Σ(・□・;)
ソースコードの修正にはC#を使用して修正する必要があります。のでその部分はC#による説明をします。
無線LAN切断メソッドの追加
1)ソースのダウンロード
・https://managedwifi.codeplex.com よりソースコードをダウンロード
2)ソースコードの編集
Interop.cs に追加
[DllImport("wlanapi.dll")] public static extern int WlanDisconnect( [In] IntPtr clientHandle, [In, MarshalAs(UnmanagedType.LPStruct)] Guid interfaceGuid, IntPtr pReserved);
WlanApi.cs に追加
・WlanInterface() クラス内に遮断を記述する
public void Disconnect() { Wlan.ThrowIfError( Wlan.WlanDisconnect(client.clientHandle, info.interfaceGuid, IntPtr.Zero)); }
3)コンパイル
コンパイルは、Visual Studio を使用してプロジェクトを読み込みコンパイルするだけです。
以上切断コードの追加方法です。https://github.com/jorgebv/windows-wifi-api/issues/5 に書かれています。
無線LANの切断をする
Dim targetInterface = "Wi-Fi" 'ワイヤレス ネットワーク接続" Dim targetProfile = "XXXXXXXXXXXXX-2G" Dim client As WlanClient = New WlanClient() 'インタフェースを取得する Dim wlanIface = (From x In client.Interfaces() Where x.InterfaceName = targetInterface Select x).FirstOrDefault() If wlanIface Is Nothing Then Return End If 'プロファイルが存在するかチェックする Dim profile = (From x In wlanIface.GetProfiles() Where x.profileName = targetProfile Select x.profileName).FirstOrDefault() If profile Is Nothing Then Return End If 'インタフェースの接続状態をチェック If wlanIface.InterfaceState = Wlan.WlanInterfaceState.Connected Then 'プロファイル名が接続中かチェック If wlanIface.CurrentConnection.profileName = targetProfile Then '接続切断(追加したメソッド) wlanIface.Disconnect() End If End If