public static string[] getComPorts() { var list = new ArrayList(); ManagementClass win32_pnpentity = new ManagementClass("Win32_PnPEntity"); ManagementObjectCollection col = win32_pnpentity.GetInstances(); Regex reg = new Regex(".+\\((?<port>COM\\d+)\\)"); foreach (ManagementObject obj in col) { // name : "USB Serial Port(COM??)" string name = (string)obj.GetPropertyValue("name"); if (name != null && name.Contains("(COM")) { // "USB Serial Port(COM??)" -> COM?? Match m = reg.Match(name); string port = m.Groups["port"].Value; // description : "USB Serial Port" string desc = (string)obj.GetPropertyValue("Description"); // result string : "COM?? (USB Serial Port)" list.Add(port + " (" + desc + ")"); } } ComPortComparer comp = new ComPortComparer(); list.Sort(comp); return (string[])list.ToArray(typeof(string)); }
public static string[] getComPorts() { var list = new ArrayList(); ManagementClass win32_pnpentity = new ManagementClass("Win32_PnPEntity"); ManagementObjectCollection col = win32_pnpentity.GetInstances(); Regex reg = new Regex(".+\\((?<port>COM\\d+)\\)"); foreach (ManagementObject obj in col) { // name : "USB Serial Port(COM??)" string name = (string)obj.GetPropertyValue("name"); if (name != null && name.Contains("(COM")) { // "USB Serial Port(COM??)" -> COM?? Match m = reg.Match(name); string port = m.Groups["port"].Value; // description : "USB Serial Port" string desc = (string)obj.GetPropertyValue("Description"); // result string : "COM?? (USB Serial Port)" list.Add(port + " (" + desc + ")"); } } ComPortComparer comp = new ComPortComparer(); list.Sort(comp); return((string[])list.ToArray(typeof(string))); }