Esempio n. 1
0
 /// <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);
 }
Esempio n. 2
0
            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);
            }
Esempio n. 3
0
            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);
            }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
 /// <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);
 }
Esempio n. 8
0
 /// <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);
 }