예제 #1
0
        private string GetComPortInfo()
        {
            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);
                }
            }

            if (list.Count == 0)
            {
                return("[No COM port]");
            }

            ComPortComparer comp = new ComPortComparer();

            list.Sort(comp);

            string result = "";

            foreach (string str in list)
            {
                result += str;
                result += "\n";
            }
            return(result);
        }
예제 #2
0
        private string GetComPortInfo()
        {
            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);
                }
            }

            if (list.Count == 0)
            {
                return "[No COM port]";
            }

            ComPortComparer comp = new ComPortComparer();
            list.Sort(comp);

            string result = "";
            foreach (string str in list)
            {
                result += str;
                result += "\n";
            }
            return result;
        }