托管Wifi API示例

时间:2015-02-13 05:37:28

标签: c# winforms wifi

是否有任何使用Managed Wifi API?用于Windows窗体的好例子

我已根据我发现的内容编写了一些使用它但我希望看到一个显示可用连接列表然后选择一个连接的工作示例。还有其他我可以尝试做的事情吗?

到目前为止,我已经完成了但是我甚至不确定它是否有效,因为我在没有无线网卡的计算机上

//display connections on a listview
lstNetworks.Items.Clear();
WlanClient client = new WlanClient();
foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
{
   Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
   foreach (Wlan.WlanAvailableNetwork network in networks)
   {
      Wlan.Dot11Ssid ssid = network.dot11Ssid;
      string networkName = Encoding.ASCII.GetString(ssid.SSID, 0, (int)ssid.SSIDLength);
      ListViewItem item = new ListViewItem(networkName);
      item.SubItems.Add(network.dot11DefaultCipherAlgorithm.ToString());
      item.SubItems.Add(network.wlanSignalQuality + "%");
      lstNetworks.Items.Add(item);
   }
 }

// Click on a listview row displays the connection details on labels

//connecting to a network

WlanClient client = new WlanClient();
foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
{
  string profileName = label1.Text;
  string profileXml = string.Format("<?xml version=\"1.0\"?><WLANProfile xmlns=\"http://www.microsoft.com/networking/WLAN/profile/v1\"><name>{0}</name><SSIDConfig><SSID><name>{0}</name></SSID><nonBroadcast>false</nonBroadcast></SSIDConfig><connectionType>ESS</connectionType><connectionMode>manual</connectionMode><MSM><security><authEncryption><authentication>open</authentication><encryption>none</encryption><useOneX>false</useOneX></authEncryption></security></MSM></WLANProfile>", profileName);
  wlanIface.SetProfile(Wlan.WlanProfileFlags.AllUser, profileXml, true);
  wlanIface.Connect(Wlan.WlanConnectionMode.Profile, Wlan.Dot11BssType.Any, profileName);
}

如果有人可以对xml配置文件发表评论,那么我将连接到没有密码的网络。

0 个答案:

没有答案