比如获取状态、连接、断开、信号强度等

解决方案 »

  1.   

    用native wifi sdk
    怎么不用C++?
      

  2.   

    已实现部分功能,但连接不安全网络(未设密码)用WlanConnect怎么都连不上,求解!!!,坐等高人啊
      

  3.   

    下载这个:http://managedwifi.codeplex.com/
    例子:namespace WifiExample
    {
    using NativeWifi;
    using System;
    using System.Text; internal class Program
    {
    /// <summary>
    /// Converts a 802.11 SSID to a string.
    /// </summary>
    private static string GetStringForSSID(Wlan.Dot11Ssid ssid)
    {
    return Encoding.ASCII.GetString(ssid.SSID, 0, (int) ssid.SSIDLength);
    } private static void Main(string[] args)
    {
    WlanClient client = new WlanClient();
    foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
    {
    // Lists all networks with WEP security
    Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
    foreach (Wlan.WlanAvailableNetwork network in networks)
    {
    if (network.dot11DefaultCipherAlgorithm == Wlan.Dot11CipherAlgorithm.WEP)
    {
    Console.WriteLine("Found WEP network with SSID {0}.", GetStringForSSID(network.dot11Ssid));
    }
    } // Retrieves XML configurations of existing profiles.
    // This can assist you in constructing your own XML configuration
    // (that is, it will give you an example to follow).
    foreach (Wlan.WlanProfileInfo profileInfo in wlanIface.GetProfiles())
    {
    string name = profileInfo.profileName; // this is typically the network's SSID
    string xml = wlanIface.GetProfileXml(profileInfo.profileName);
    } // Connects to a known network with WEP security
    string profileName = "Cheesecake"; // 改成要连接的无线网的 SSID
    string key = "hello"; // 改成连接密码
    string mac = wlanIface.NetworkInterface.GetPhysicalAddress().ToString();
    string profileXml = string.Format(@"<?xml version=""1.0""?>
    <WLANProfile xmlns=""http://www.microsoft.com/networking/WLAN/profile/v1"">
    <name>{0}</name>
    <SSIDConfig>
    <SSID>
    <hex>{1}</hex>
    <name>{0}</name>
    </SSID>
    </SSIDConfig>
    <connectionType>ESS</connectionType>
    <MSM>
    <security>
    <authEncryption>
    <authentication>open</authentication>
    <encryption>WEP</encryption>
    <useOneX>false</useOneX>
    </authEncryption>
    <sharedKey>
    <keyType>networkKey</keyType>
    <protected>false</protected>
    <keyMaterial>{2}</keyMaterial>
    </sharedKey>
    <keyIndex>0</keyIndex>
    </security>
    </MSM>
    </WLANProfile>", profileName, mac, key);
    wlanIface.SetProfile(Wlan.WlanProfileFlags.AllUser, profileXml, true);
    wlanIface.Connect(Wlan.WlanConnectionMode.Profile, Wlan.Dot11BssType.Any, profileName);
    }
    }
    }
    }
      

  4.   

    验证了一下你的代码,有点问题,报“网络连接配置文件已损坏。”异常!!
    <keyMaterial>{2}</keyMaterial>这个地方的密码应该用加过密之后的值吧
      

  5.   

    比如类似中国电信ChinaNet这种开放似的网络怎么连接???求解。。
      

  6.   

    中间这一段:
     foreach (Wlan.WlanProfileInfo profileInfo in wlanIface.GetProfiles())
                    {
                        string name = profileInfo.profileName; // this is typically the network's SSID
                        string xml = wlanIface.GetProfileXml(profileInfo.profileName);
                    }
    是系统中已有的xml配置,你用Console.WriteLine或调试看看这些xml配置是怎样的,系统中的配置是肯定正确的,然后你参考它改改。
      

  7.   

    开放的网络,象ChinaNet这种,是没有配置文件的