2019年10月30日 星期三

在C#專案中使用ManagementObjectSearcher

ManagementObjectSearcher 好用的地方在於取得系統裝置更多的資訊。對於需要對於系統的週邊硬體進行控制時,要能利用程式自動開啟"正確"的COMPORT 與目標進行通訊時,這些細節能協助程式來進行判斷。對於增加使用者友善來說,是十分有用的功能。使用前先記加入 reference。

取得 comport list 的sql 範例如下


try
            {
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_SerialPort");
                //string[] ports = System.IO.Ports.SerialPort.GetPortNames();
                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine(String.Format("{0}", queryObj["DeviceID"]), String.Format("{0} - {1}", queryObj["DeviceID"], queryObj["Caption"]));
                }
            }
            catch (ManagementException ex)
            {
                Console.WriteLine("0", "Error " + ex.Message);
            }