private void Inte_WlanNotification(WlanNotificationData notifyData) { var listofPoints = GetAccessPoints(); currentState = new WifiState(); foreach (var network in listofPoints) { var networkInterface = _client.Interfaces.Where(i => i.CurrentConnection.profileName == network.profileName).FirstOrDefault(); if (networkInterface != null) { currentState.SSID = Encoding.ASCII.GetString(network.dot11Ssid.SSID, 0, (int)network.dot11Ssid.SSIDLength); currentState.IsInsecure = !network.securityEnabled; for (int i = 0; i < _client.Interfaces.Length; i++) { var interf = _client.Interfaces[i]; if (interf.InterfaceGuid == notifyData.interfaceGuid) { currentState.InterfaceName = interf.InterfaceName; currentState.InterfaceIndex = i; } } } } WifiStateChanged.Invoke(this.CurrentState); }
private void NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e) { WifiStateChanged?.Invoke(this, new WifiStateChangedArguments { EventType = e.IsAvailable ? WifiEventType.Connected : WifiEventType.Disconnected }); }