示例#1
0
        /// <summary>
        /// Enable Or Disable The NetworkAdapter
        /// </summary>
        /// <returns>
        /// Whether the NetworkAdapter was enabled or disabled successfully
        /// </returns>
        public int EnableOrDisableNetworkAdapter(string strOperation)
        {
            int resultEnableDisableNetworkAdapter = (int)EnumEnableDisableResult.Unknow;
            ManagementObject crtNetworkAdapter    = new ManagementObject();

            string strWQuery = string.Format("SELECT DeviceID, ProductName, NetEnabled, NetConnectionStatus FROM Win32_NetworkAdapter " + "WHERE DeviceID = {0}", DeviceId);

            try
            {
                ManagementObjectCollection networkAdapters = WMIOperation.WMIQuery(strWQuery);

                foreach (ManagementObject networkAdapter in networkAdapters)
                {
                    crtNetworkAdapter = networkAdapter;
                }

                crtNetworkAdapter.InvokeMethod(strOperation, null);

                Thread.Sleep(500);

                //while (GetNetEnabled() != ((strOperation.Trim() == "Enable") ? (int) EnumNetEnabledStatus.Enabled : (int) EnumNetEnabledStatus.Disabled))
                //{
                //    Thread.Sleep(100);
                //}

                resultEnableDisableNetworkAdapter = (int)EnumEnableDisableResult.Success;
            }
            catch (NullReferenceException)
            {
                // If there is a NullReferenceException, the result of the enable or
                // disable network adapter operation will be fail
                resultEnableDisableNetworkAdapter = (int)EnumEnableDisableResult.Fail;
            }

            crtNetworkAdapter.Dispose();

            return(resultEnableDisableNetworkAdapter);
        }
示例#2
0
        public NetworkAdapter(int deviceId)
        {
            ManagementObject crtNetworkAdapter = new ManagementObject();
            string           strWQuery         = string.Format("SELECT DeviceID, ProductName, NetEnabled, NetConnectionStatus FROM Win32_NetworkAdapter WHERE DeviceID = {0}", deviceId);

            try
            {
                ManagementObjectCollection networkAdapters = WMIOperation.WMIQuery(strWQuery);

                foreach (ManagementObject networkAdapter in networkAdapters)
                {
                    // Expected to be only one ManagementObject instance.
                    crtNetworkAdapter = networkAdapter;
                    break;
                }

                Extra      = "";
                DeviceId   = deviceId;
                Name       = crtNetworkAdapter["ProductName"].ToString();
                NetEnabled = (
                    Convert.ToBoolean(crtNetworkAdapter["NetEnabled"].ToString()))
                    ? (int)EnumNetEnabledStatus.Enabled
                    : (int)EnumNetEnabledStatus.Disabled;

                NetConnectionStatus = Convert.ToInt32(crtNetworkAdapter["NetConnectionStatus"].ToString());
            }
            catch (NullReferenceException)
            {
                // If there is no a network adapter which deviceid equates to the argument
                // "deviceId" just to construct a none exists network adapter
                DeviceId            = -1;
                Name                = string.Empty;
                Extra               = string.Empty;
                NetEnabled          = 0;
                NetConnectionStatus = -1;
            }
        }
示例#3
0
        /// <summary>
        /// Get the NetworkAdapter Netenabled Property
        /// </summary>
        /// <returns>Whether the NetworkAdapter is enabled</returns>
        //public int GetNetEnabled()
        //{
        //    int netEnabled = (int)EnumNetEnabledStatus.Unknow;
        //    string strWQuery = string.Format("SELECT NetEnabled FROM Win32_NetworkAdapter WHERE DeviceID = {0}", DeviceId);
        //    try
        //    {
        //        ManagementObjectCollection networkAdapters =
        //            WMIOperation.WMIQuery(strWQuery);
        //        foreach (ManagementObject networkAdapter in networkAdapters)
        //        {
        //            netEnabled =
        //                (Convert.ToBoolean(networkAdapter["NetEnabled"].ToString()))
        //                             ? (int) EnumNetEnabledStatus.Enabled
        //                             : (int) EnumNetEnabledStatus.Disabled;
        //        }
        //    }
        //    catch(NullReferenceException)
        //    {
        //        // If NullReferenceException return (EnumNetEnabledStatus.Unknow)
        //    }
        //    return netEnabled;
        //}

        #endregion

        #region Get All NetworkAdapters

        /// <summary>
        /// List all the NetworkAdapters
        /// </summary>
        /// <returns>The list of all NetworkAdapter of the machine</returns>
        public static List <NetworkAdapter> GetAllNetworkAdapter()
        {
            PowerShell psh = PowerShell.Create();

            List <NetworkAdapter> allNetworkAdapter = new List <NetworkAdapter>();

            // Manufacturer <> 'Microsoft'to get all none virtual devices.
            // Because the AdapterType property will be null if the NetworkAdapter is
            // disabled, so we do not use NetworkAdapter = 'Ethernet 802.3' or
            // NetworkAdapter = 'Wireless’

            //string strWQuery = "SELECT DeviceID, NetConnectionID, ProductName, Name, NetEnabled, NetConnectionStatus FROM Win32_NetworkAdapter ";

            string strWQuery = "SELECT DeviceID, NetConnectionID, ProductName, Name, NetEnabled, NetConnectionStatus, ServiceName FROM Win32_NetworkAdapter ";

            ManagementObjectCollection networkAdapters = WMIOperation.WMIQuery(strWQuery);

            foreach (ManagementObject moNetworkAdapter in networkAdapters)
            {
                try
                {
                    String NetConnectionName = moNetworkAdapter["NetConnectionID"].ToString();

                    // Custom Descriptions
                    if (NetConnectionName.Equals("Ethernet"))
                    {
                        NetConnectionName = "Network Cable";
                    }
                    if (NetConnectionName.Equals("Mobile broadband"))
                    {
                        NetConnectionName = "Cellular";
                    }

                    if (moNetworkAdapter["ProductName"].ToString().Contains("Internet Sharing Device"))
                    {
                        NetConnectionName = "Mobile Dongle";
                    }

                    String _xtra = "";
                    String _mobile_network_name = "";

                    //Get Enabled/Disabled Status
                    Boolean _enabled = false;
                    psh.AddScript("Get-Service " + moNetworkAdapter["ServiceName"]); //A5AGU
                    Collection <PSObject> result = psh.Invoke();
                    foreach (PSObject msg in result)
                    {
                        _enabled = (msg.Properties["Status"].Value.ToString().Equals("Running")) ? true : false;
                    }


                    if (NetConnectionName == "Cellular" || NetConnectionName == "Wi-Fi")
                    {
                        String _xtra_all = Util.netsh((NetConnectionName == "Cellular") ? "mbn show interfaces" : "wlan show interfaces");

                        using (StringReader reader = new StringReader(_xtra_all))
                        {
                            string line;
                            while ((line = reader.ReadLine()) != null)
                            {
                                if (line.Contains(":"))
                                {
                                    string[] words = line.Split(':');
                                    if (words[0].Trim().Equals("Provider Name"))
                                    {
                                        _xtra += "Network Provider: " + words[1].Trim() + Environment.NewLine;
                                        _mobile_network_name = words[1].Trim();
                                    }
                                    if (words[0].Trim().Equals("SSID"))
                                    {
                                        _xtra += "Network Name: " + words[1].Trim() + Environment.NewLine;
                                    }
                                    if (words[0].Trim().Equals("Signal"))
                                    {
                                        _xtra += "Signal Strength: " + words[1].Trim() + Environment.NewLine;
                                    }
                                }
                            }
                        }
                    }

                    //if (proc.WaitForExit(timeout) == false)
                    //{
                    //  proc.Kill();
                    //}


                    allNetworkAdapter.Add(new NetworkAdapter(
                                              Convert.ToInt32(moNetworkAdapter["DeviceID"].ToString()),
                                              _enabled,
                                              NetConnectionName,
                                              moNetworkAdapter["Name"].ToString(),
                                              _xtra,
                                              _mobile_network_name,
                                              (Convert.ToBoolean(moNetworkAdapter["NetEnabled"].ToString()))
                            ? (int)EnumNetEnabledStatus.Enabled
                            : (int)EnumNetEnabledStatus.Disabled,
                                              Convert.ToInt32(moNetworkAdapter["NetConnectionStatus"].ToString()
                                                              )));
                }
                catch (NullReferenceException)
                {
                    // Ignore some other devices (like the bluetooth), that need user
                    // interaction to enable or disable.
                }
            }

            return(allNetworkAdapter);
        }