Der bereitgestellte Code listet COM-Ports erfolgreich auf, ihm fehlt jedoch die Funktionalität zum Abrufen von Portbeschreibungen, wie sie im Geräte-Manager sichtbar sind. Für eine umfassende Lösung wird der folgende Ansatz empfohlen:
<code class="csharp">using (var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE Caption like '%(COM%'")) { var portnames = SerialPort.GetPortNames(); var ports = searcher.Get().Cast<ManagementBaseObject>().ToList().Select(p => p["Caption"].ToString()); var portList = portnames.Select(n => n + " - " + ports.FirstOrDefault(s => s.Contains(n))).ToList(); foreach (string s in portList) { Console.WriteLine(s); } }</code>
Der obige Code nutzt Windows Management Instrumentation (WMI), um detaillierte Informationen über jeden seriellen Port zu sammeln. Der ManagementObjectSearcher ist so konfiguriert, dass er nach bestimmten COM-Port-Informationen fragt.
Die Methode SerialPort.GetPortNames() gibt ein Array von Portnamen zurück. Diese Namen werden dann verwendet, um die WMI-Abfrage zu filtern und die entsprechenden Portbeschreibungen abzurufen.
Die resultierende Liste portList enthält eine Kombination aus Portnamen und Beschreibungen. Indem Sie diese Liste durchlaufen, können Sie die Informationen nach Bedarf anzeigen, beispielsweise in einem Kombinationsfeld, um Benutzern eine beschreibende Liste der verfügbaren seriellen Anschlüsse bereitzustellen.
Das obige ist der detaillierte Inhalt vonWie rufe ich Beschreibungen serieller Ports in C# ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!