無線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