コンボ ボックスにシリアル ポート名を入力するために、開発者は多くの場合 SerialPort.GetPortNames() を使用します。ただし、ユーザーはポートの説明も含める必要があると表明しています。これを実現する方法は次のとおりです。
<code class="csharp">using System; using System.Management; class Program { static void Main(string[] args) { 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>
このソリューションは、WMI (Windows Management Instrumentation) を利用することにより、キャプションに「COM」を含む PNP (プラグ アンド プレイ) エンティティをクエリします。結果として得られるポートと説明のリストが表示されるか、必要に応じてコンボ ボックスにロードできます。
以上がC# での説明を含むシリアル ポート情報を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。