示例#1
0
 private void button_Refresh_Click(object sender, RoutedEventArgs e)
 {
     Cursor = Cursors.Wait;
     try
     {
         wlan = null;
         listBox_Networks.ItemsSource = networkConfig.GetWirelessNetworks();
         listBox_Networks.Items.Refresh();
         currentSsid = NetworkConfig.GetWirelessNetworkConnectedSsid();
         if (!string.IsNullOrWhiteSpace(currentSsid))
         {
             var counter = 0;
             foreach (var item in listBox_Networks.Items)
             {
                 if (((WirelessNetwork)item).SSID == currentSsid)
                 {
                     break;
                 }
                 else
                 {
                     counter++;
                 }
             }
             listBox_Networks.SelectedIndex   = counter;
             listBox_Networks.IsEnabled       = false;
             button_Continue.IsEnabled        = true;
             button_ConnectDisconnect.Content = "Disconnect";
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
     }
     Cursor = Cursors.Arrow;
 }
示例#2
0
 private void listBox_Networks_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     wlan = (WirelessNetwork)listBox_Networks.SelectedItem;
 }
示例#3
0
        public List <WirelessNetwork> GetWirelessNetworks()
        {
            try
            {
                wirelessNetworks.Clear();

                var sr = Process.Start(new ProcessStartInfo
                {
                    FileName  = "netsh",
                    Arguments = "wlan show networks mode=bssid",
                    RedirectStandardOutput = true,
                    UseShellExecute        = false,
                    CreateNoWindow         = true
                }).StandardOutput;

                // example output:
                //
                //Interface name : Wi - Fi
                //There are 12 networks currently visible.
                //
                //SSID 3 : ZGxoNG1vYmlsZQ
                //    Network type            : Infrastructure
                //    Authentication          : WPA2 - Enterprise
                //    Encryption              : CCMP
                //    BSSID 1                 : 00:11:20:70:7e:71
                //         Signal             : 62 %
                //         Radio type         : 802.11g
                //         Channel            : 11
                //         Basic rates (Mbps) : 1 2 5.5 11
                //         Other rates (Mbps) : 6 9 12 18 24 36 48 54
                //    BSSID 2                 : 00:11:20:70:83:01
                //         Signal             : 100 %
                //         Radio type         : 802.11g
                //         Channel            : 11
                //         Basic rates (Mbps) : 1 2 5.5 11
                //         Other rates (Mbps) : 6 9 12 18 24 36 48 54

                // skip first 4 lines
                for (int i = 0; i < 4; i++)
                {
                    sr.ReadLine();
                }
                var wirelessNetwork = new WirelessNetwork();

                while (!sr.EndOfStream)
                {
                    var line     = sr.ReadLine();
                    var property = line.Trim().ToLower();

                    if (line.Trim().ToLower().StartsWith("ssid "))
                    {
                        var prop = line.Split(':')[1].TrimStart();
                        if (!string.IsNullOrWhiteSpace(prop))
                        {
                            wirelessNetwork.SSID = prop;
                        }
                    }

                    if (line.Trim().ToLower().StartsWith("network type "))
                    {
                        var prop = line.Split(':')[1].TrimStart();
                        if (!string.IsNullOrWhiteSpace(prop))
                        {
                            wirelessNetwork.NetworkType = prop;
                        }
                    }

                    if (line.Trim().ToLower().StartsWith("authentication "))
                    {
                        var prop = line.Split(':')[1].TrimStart();
                        if (!string.IsNullOrWhiteSpace(prop))
                        {
                            wirelessNetwork.Authentication = prop;
                        }
                    }

                    if (line.Trim().ToLower().StartsWith("encryption "))
                    {
                        var prop = line.Split(':')[1].TrimStart();
                        if (!string.IsNullOrWhiteSpace(prop))
                        {
                            wirelessNetwork.Encryption = prop;
                        }
                    }

                    if (line.Trim().ToLower().StartsWith("bssid "))
                    {
                        var bss = new Bss();
                        bss.ID = line.TrimStart().Split(' ')[1];

                        while (!sr.EndOfStream)
                        {
                            line = sr.ReadLine();

                            if (line.Trim().ToLower().StartsWith("bssid "))
                            {
                                wirelessNetwork.BSS.Add(bss);
                                bss    = new Bss();
                                bss.ID = line.TrimStart().Split(' ')[1];
                                continue;
                            }

                            if (line.Trim().ToLower().StartsWith("signal "))
                            {
                                var prop = line.Split(':')[1].Trim();
                                if (!string.IsNullOrWhiteSpace(prop))
                                {
                                    bss.Signal = prop;
                                    continue;
                                }
                            }

                            if (line.Trim().ToLower().StartsWith("radio type "))
                            {
                                var prop = line.Split(':')[1].Trim();
                                if (!string.IsNullOrWhiteSpace(prop))
                                {
                                    bss.RadioType = prop;
                                    continue;
                                }
                            }

                            if (line.Trim().ToLower().StartsWith("channel "))
                            {
                                var prop = line.Split(':')[1].Trim();
                                if (!string.IsNullOrWhiteSpace(prop))
                                {
                                    bss.Channel = prop;
                                    continue;
                                }
                            }

                            if (line.Trim().ToLower().StartsWith("basic rates (mbps) "))
                            {
                                var prop = line.Split(':')[1].Trim();
                                if (!string.IsNullOrWhiteSpace(prop))
                                {
                                    bss.BasicRatesMdps = prop;
                                    continue;
                                }
                            }

                            if (line.Trim().ToLower().StartsWith("other rates (mbps) "))
                            {
                                var prop = line.Split(':')[1].Trim();
                                if (!string.IsNullOrWhiteSpace(prop))
                                {
                                    bss.OtherRatesMbps = prop;
                                    continue;
                                }
                            }

                            if (string.IsNullOrWhiteSpace(line))
                            {
                                wirelessNetwork.BSS.Add(bss);
                                break;
                            }
                        }
                    }

                    if (string.IsNullOrWhiteSpace(line))
                    {
                        wirelessNetworks.Add(wirelessNetwork);
                        wirelessNetwork = new WirelessNetwork();
                    }
                }
                return(wirelessNetworks);
            }
            catch (Exception)
            {
                throw;
            }
        }