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; }
private void listBox_Networks_SelectionChanged(object sender, SelectionChangedEventArgs e) { wlan = (WirelessNetwork)listBox_Networks.SelectedItem; }
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; } }