.net - Gruppering af Windows-enheder med fysisk hardware i C #

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at skrive en C # -applikation, der grænseflader med et stykke hardware, der registrerer flere COM-porte.


Flere af disse enheder kan tilsluttes på én gang, så jeg har brug for en pålidelig måde at identificere, hvilke porte der er relateret til den samme fysiske enhed.


Min forskning hidtil indikerer, at Container-ID'et, som det ses i Windows Device Manager, er præcis det, jeg har brug for (men lad mig rense det).
Dette er den ejendom, jeg tror jeg har brug for [2] [3]


Men når jeg forsøger at undersøge egenskaberne for havne ved hjælp af ManagementObjectSearcher, er Container ID ikke noget, der skal findes.


        var deviceList = new ManagementObjectSearcher("Select * from Win32\_SerialPort");

        foreach (var device in deviceList.Get().OfType<ManagementObject>())
        {
            var name = device.GetPropertyValue("Name") as string;
            if (name == null)
                continue;
            Console.WriteLine(name);
            foreach (var property in device.Properties)
            {
                if (!property.Name.Equals("Name"))
                {
                    var value = property.Value;
                    if (value == null)
                        continue;
                    // This never prints Container ID
                    Console.WriteLine($"	{property.Name}		{value}");
                }
            }
        }


Mine spørgsmål er:



  • Er jeg lige på rette spor her, eller skal jeg se andre steder?

  • Er der en klar måde at få den Container ID, jeg bare mangler?



Tak.

Bedste reference