public static async Task<IEnumerable<SerialPort>> FindPorts()
{
List<SerialPort> ports = new List<Networking.SerialPort>();
await Task.Run(() =>
{
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_SerialPort"); // Win32_USBControllerDevice
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
{
foreach (ManagementObject obj2 in searcher.Get())
{
//DeviceID
string id = obj2.Properties["DeviceID"].Value.ToString();
string name = obj2.Properties["Name"].Value.ToString();
ports.Add(new SerialPort() { Id = id, Name = name });
}
}
});
return ports;
}