Exemplo n.º 1
0
        private void ConnectIcs()
        {
            if (connectionComboBox.SelectedItem.ToString() == "No connection Avilable!")
            {
                StatusLbl.Text      = "Status: Hotspot started without ICS!";
                startButton.Text    = "&Stop";
                startButton.Enabled = true;
            }
            else
            {
                StatusLbl.Text = "Status: Trying to create ICS with " + connectionComboBox.SelectedItem.ToString() + ".";

                //------------------------------------------------------------------------------------------------------
                ManagementScope          IcsVirtualAdapterScope    = new ManagementScope();
                SelectQuery              IcsVirtualAdapterQuery    = new SelectQuery("Win32_NetworkAdapter", "Description=\"Microsoft Hosted Network Virtual Adapter\"");
                ManagementObjectSearcher IcsVirtualAdapterSearcher = new ManagementObjectSearcher(IcsVirtualAdapterScope, IcsVirtualAdapterQuery);
                //Dim IcsVirtualAdapterIdArray As New ComboBox

                try
                {
                    foreach (ManagementObject IcsVirtualAdapter in IcsVirtualAdapterSearcher.Get())
                    {
                        string IcsVirtualAdapterId = IcsVirtualAdapter["NetConnectionID"].ToString();
                        MainModule.IcsVirtualAdapterIdArray.Items.Add(IcsVirtualAdapterId);
                    }
                }
                catch
                {
                }

                if (MainModule.IcsVirtualAdapterIdArray.Items.Count > 1)
                {
                    VirtualAdapterSelectionDialog.DefaultInstance.ShowDialog();
                }
                else
                {
                    MainModule.IcsVirtualAdapterIdArray.SelectedIndex = 0;
                    MainModule.IcsVirtualAdapterId = MainModule.IcsVirtualAdapterIdArray.SelectedItem.ToString();
                }

                MainModule.IcsVirtualAdapterIdArray.Items.Clear();
                StatusLbl.Text = "Status: Selected virtual adapter: " + MainModule.IcsVirtualAdapterId + ".";
                //------------------------------------------------------------------------------------------------------

                try
                {
                    IcsManager.ShareConnection(IcsManager.GetConnectionByName(connectionComboBox.SelectedItem.ToString()), IcsManager.GetConnectionByName(MainModule.IcsVirtualAdapterId));
                    StatusLbl.Text      = "Status: Shared internet from " + connectionComboBox.SelectedItem.ToString() + " to " + MainModule.IcsVirtualAdapterId.ToString() + ".";
                    startButton.Text    = "&Stop";
                    startButton.Enabled = true;
                }
                catch
                {
                    StatusLbl.Text = "Status: Network shell busy, retrying ICS with " + connectionComboBox.SelectedItem.ToString() + ".";
                    //startButton.Text = "&Stop"
                    //startButton.Enabled = True
                    System.Threading.Thread.Sleep(1000);
                    ConnectIcs();
                }
            }
        }