私のプログラムからWI-Fiネットワークに接続する機会を探していたら、問題にならないかもしれませんが、私にとっては大きな道のりでした。
理解を深めるために、プロジェクトを条件付きで2つの部分に分割します。
最初に、Visual StudioでC#-WindowsFormsApplicationのプロジェクトを作成し、名前を付けます。最も気に入っているので、「Wifi」と呼びます。
パート1:利用可能なネットワークを見つける
したがって、2つのコントローラーをフォームにスローします。
- ListView-listNetに名前を付けて、わかりやすくするために4つの列を追加します。
- ボタン-btnRefreshを呼び出す
必要なのはこれだけです。私のウィンドウは次のようになります。

その後、プロジェクトに2つの新しいファイルを追加します。これはネイティブWifiライブラリです。インターネット上のどこかで見つけました。
ソースはここで取得できます必要な名前空間を宣言します
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using NativeWifi;
ボタンのクリックを処理するプロシージャを作成し、そこにこのコードを追加します。
WlanClient client = new WlanClient(); foreach (WlanClient.WlanInterface wlanIface in client.Interfaces) { Wlan.WlanAvailableNetwork[] wlanBssEntries = wlanIface.GetAvailableNetworkList( 0 );
これで、アプリケーションを実行して、必要なすべてのネットワークが見つかったことを確認できます。次のようになります。私のように見えます。右側の暗いバーは、Windows 8でネットワークに接続するためのフィールドです。

パート2:接続
そして、最も簡単な方法で完了です。 ここで、必要なネットワークに接続する必要があります。ネットワークに接続する例を考えます。これはプログラムのリストの最初です。
別のボタンを作成し、このコードをそこに追加します。
try { WlanClient client = new WlanClient(); foreach (WlanClient.WlanInterface wlanIface in client.Interfaces) { Wlan.WlanAvailableNetwork[] wlanBssEntries = wlanIface.GetAvailableNetworkList(0); foreach (Wlan.WlanAvailableNetwork network in wlanBssEntries) { String profileName = System.Text.ASCIIEncoding.ASCII.GetString(network.dot11Ssid.SSID).Trim((char)0);
最も重要なこと、この行のみを説明します。
String profileXml = String.Format(strTemplate, profileName, authentication, encryption, key);
ここで、接続用のプロファイルを作成します。テンプレート(strTemplate)は次のようになります。
<?xml version="1.0"?> <WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"> <name>{0}</name> <SSIDConfig> <SSID> <name>{0}</name> </SSID> </SSIDConfig> <connectionType>ESS</connectionType> <connectionMode>manual</connectionMode> <MSM> <security> <authEncryption> <authentication>{1}</authentication> <encryption>{2}</encryption> <useOneX>false</useOneX> </authEncryption> <sharedKey> <keyType>passPhrase</keyType> <protected>false</protected> <keyMaterial>{3}</keyMaterial> </sharedKey> </security> </MSM> </WLANProfile>
私が持っているネットワークを前もって知っているので、私はそれを選んだ。 さまざまなオプションの詳細については、こちらをご覧ください。
http://msdn.microsoft.com/en-US/library/windows/desktop/aa369853(v=vs.85).aspx簡単に言えば、XMLドキュメントに既知のデータ(ネットワークキー)と以前に見つかったデータ(名前、セキュリティ、暗号化)を入力し、プロファイルを追加して接続します。
プロジェクトを開始し、ネットワークのリストを更新し、ネットワークを選択して接続します。
この例は確かに普遍的ではありませんが、ネットワークが使用する暗号化をチェックし、プロファイルに必要なテンプレートを選択することを妨げるものです。
このリンクから Visual Studio 2012のプロジェクトをダウンロードできます。
ご清聴ありがとうございました。