/// <summary> /// Connects to the specified wireless network. /// </summary> /// <remarks> /// The method returns immediately. Progress is reported through the <see cref="WlanNotification"/> event. /// </remarks> public void Connect(Wlan.WlanConnectionMode connectionMode, Wlan.Dot11BssType bssType, Wlan.Dot11Ssid ssid, Wlan.WlanConnectionFlags flags) { Wlan.WlanConnectionParameters connectionParams = new Wlan.WlanConnectionParameters(); connectionParams.wlanConnectionMode = connectionMode; connectionParams.dot11SsidPtr = Marshal.AllocHGlobal(Marshal.SizeOf(ssid)); Marshal.StructureToPtr(ssid, connectionParams.dot11SsidPtr, false); connectionParams.dot11BssType = bssType; connectionParams.flags = flags; Connect(connectionParams); Marshal.DestroyStructure(connectionParams.dot11SsidPtr, ssid.GetType()); Marshal.FreeHGlobal(connectionParams.dot11SsidPtr); }
public void Connect(string Bssid, string ProfileName) { byte[] desBssid = Bssid.Split(':').Select(x => Convert.ToByte(x, 16)).ToArray(); Wlan.NDIS_OBJECT_HEADER ndoh; ndoh.Type = Wlan.NDIS_OBJECT_TYPE_DEFAULT; ndoh.Revision = Wlan.DOT11_BSSID_LIST_REVISION_1; ndoh.Size = (ushort)System.Runtime.InteropServices.Marshal.SizeOf(typeof(Wlan.DOT11_BSSID_LIST)); Wlan.DOT11_BSSID_LIST desBssidList = new Wlan.DOT11_BSSID_LIST(); desBssidList.Header = ndoh; desBssidList.uNumOfEntries = 1; desBssidList.uTotalNumOfEntries = 1; Wlan.DOT11_MAC_ADDRESS bssid = new Wlan.DOT11_MAC_ADDRESS(); bssid.Dot11MacAddress = desBssid; desBssidList.BSSIDs = new Wlan.DOT11_MAC_ADDRESS[1]; desBssidList.BSSIDs[0] = bssid; IntPtr desBssidListPtr = Marshal.AllocHGlobal(Marshal.SizeOf(desBssidList)); Marshal.StructureToPtr(desBssidList, desBssidListPtr, false); Wlan.DOT11_SSID dot11Ssid = new Wlan.DOT11_SSID(); dot11Ssid.ucSSID = ProfileName; dot11Ssid.uSSIDLength = (uint)dot11Ssid.ucSSID.Length; IntPtr dot11SsidPtr = Marshal.AllocHGlobal(Marshal.SizeOf(dot11Ssid)); Marshal.StructureToPtr(dot11Ssid, dot11SsidPtr, false); string profileXml = GetProfileXml(ProfileName); SetProfile(Wlan.WlanProfileFlags.AllUser, profileXml, true); Wlan.WlanConnectionParameters connectionParams = new Wlan.WlanConnectionParameters(); connectionParams.wlanConnectionMode = Wlan.WlanConnectionMode.Profile; connectionParams.profile = ProfileName; connectionParams.dot11SsidPtr = dot11SsidPtr; connectionParams.dot11BssType = Wlan.Dot11BssType.Any; connectionParams.flags = 0; connectionParams.desiredBssidListPtr = desBssidListPtr; Connect(connectionParams); }
public void Connect(string Bssid, string Ssid, string Pwd) { byte[] desBssid = Bssid.Split(':').Select(x => Convert.ToByte(x, 16)).ToArray(); Wlan.NDIS_OBJECT_HEADER ndoh; ndoh.Type = Wlan.NDIS_OBJECT_TYPE_DEFAULT; ndoh.Revision = Wlan.DOT11_BSSID_LIST_REVISION_1; ndoh.Size = (ushort)System.Runtime.InteropServices.Marshal.SizeOf(typeof(Wlan.DOT11_BSSID_LIST)); Wlan.DOT11_BSSID_LIST desBssidList = new Wlan.DOT11_BSSID_LIST(); desBssidList.Header = ndoh; desBssidList.uNumOfEntries = 1; desBssidList.uTotalNumOfEntries = 1; Wlan.DOT11_MAC_ADDRESS bssid = new Wlan.DOT11_MAC_ADDRESS(); bssid.Dot11MacAddress = desBssid; desBssidList.BSSIDs = new Wlan.DOT11_MAC_ADDRESS[1]; desBssidList.BSSIDs[0] = bssid; IntPtr desBssidListPtr = Marshal.AllocHGlobal(Marshal.SizeOf(desBssidList)); Marshal.StructureToPtr(desBssidList, desBssidListPtr, false); Wlan.DOT11_SSID dot11Ssid = new Wlan.DOT11_SSID(); dot11Ssid.ucSSID = Ssid; dot11Ssid.uSSIDLength = (uint)dot11Ssid.ucSSID.Length; IntPtr dot11SsidPtr = Marshal.AllocHGlobal(Marshal.SizeOf(dot11Ssid)); Marshal.StructureToPtr(dot11Ssid, dot11SsidPtr, false); 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></SSIDConfig><connectionType>ESS</connectionType><connectionMode>auto</connectionMode><MSM><security><authEncryption><authentication>WPA2PSK</authentication><encryption>AES</encryption><useOneX>false</useOneX></authEncryption><sharedKey><keyType>passPhrase</keyType><protected>false</protected><keyMaterial>{1}</keyMaterial></sharedKey></security></MSM></WLANProfile>", Ssid, Pwd); SetProfile(Wlan.WlanProfileFlags.AllUser, profileXml, true); Wlan.WlanConnectionParameters connectionParams = new Wlan.WlanConnectionParameters(); connectionParams.wlanConnectionMode = Wlan.WlanConnectionMode.Profile; connectionParams.profile = Ssid; connectionParams.dot11SsidPtr = dot11SsidPtr; connectionParams.dot11BssType = Wlan.Dot11BssType.Any; connectionParams.flags = 0; connectionParams.desiredBssidListPtr = desBssidListPtr; Connect(connectionParams); }
private void EPClosed(object sender, FormClosedEventArgs e) { if (profile_manager.is_new) { profile_manager.RestoreForm(); Wlan.WlanConnectionParameters con_params = new Wlan.WlanConnectionParameters(); con_params.wlanConnectionMode = Wlan.WlanConnectionMode.Profile; con_params.profile = profile_manager.str_profile_name; con_params.dot11BssType = Wlan.Dot11BssType.Any; con_params.flags = 0; try { Wlan.WlanConnect(wlan.ClientHandle, adapter.InterfaceGuid, ref con_params, IntPtr.Zero); } catch (Exception ex) { MessageBox.Show("Fallo al conectar: " + ex.Message); } profile_manager.is_new = false; } CheckProfiles(); }
/// <summary> /// Connects to a network defined by a connection parameters structure. /// </summary> /// <param name="connectionParams">The connection paramters.</param> protected void Connect(Wlan.WlanConnectionParameters connectionParams) { Wlan.ThrowIfError( Wlan.WlanConnect(client.clientHandle, info.interfaceGuid, ref connectionParams, IntPtr.Zero)); }
/// <summary> /// Connects to the specified wireless network. /// </summary> /// <remarks> /// The method returns immediately. Progress is reported through the <see cref="WlanNotification"/> event. /// </remarks> public void Connect(Wlan.WlanConnectionMode connectionMode, Wlan.Dot11BssType bssType, Wlan.Dot11Ssid ssid, Wlan.WlanConnectionFlags flags) { Wlan.WlanConnectionParameters connectionParams = new Wlan.WlanConnectionParameters(); connectionParams.wlanConnectionMode = connectionMode; connectionParams.dot11SsidPtr = Marshal.AllocHGlobal(Marshal.SizeOf(ssid)); Marshal.StructureToPtr(ssid, connectionParams.dot11SsidPtr, false); connectionParams.dot11BssType = bssType; connectionParams.flags = flags; Connect(connectionParams); Marshal.DestroyStructure(connectionParams.dot11SsidPtr, ssid.GetType()); Marshal.FreeHGlobal(connectionParams.dot11SsidPtr); }
/// <summary> /// Requests a connection (association) to the specified wireless network. /// </summary> /// <remarks> /// The method returns immediately. Progress is reported through the <see cref="WlanNotification"/> event. /// </remarks> public void Connect(Wlan.WlanConnectionMode connectionMode, Wlan.Dot11BssType bssType, string profile) { Wlan.WlanConnectionParameters connectionParams = new Wlan.WlanConnectionParameters(); connectionParams.wlanConnectionMode = connectionMode; connectionParams.profile = profile; connectionParams.dot11BssType = bssType; connectionParams.flags = 0; Connect(connectionParams); }
/// <summary> /// Connects to a network defined by a connection parameters structure. /// </summary> /// <param name="connectionParams">The connection paramters.</param> protected void Connect(Wlan.WlanConnectionParameters connectionParams) { var result = Wlan.WlanConnect(client.clientHandle, info.interfaceGuid, ref connectionParams, IntPtr.Zero); }