提供されたコードは COM ポートを正常に列挙しますが、デバイス マネージャーに表示されるようなポートの説明を取得する機能がありません。包括的なソリューションには、次のアプローチをお勧めします。
<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>
上記のコードは、Windows Management Instrumentation (WMI) を利用して各シリアル ポートに関する詳細情報を収集します。 ManagementObjectSearcher は、特定の COM ポート情報をクエリするように構成されています。
SerialPort.GetPortNames() メソッドは、ポート名の配列を返します。これらの名前は、WMI クエリをフィルタリングし、対応するポートの説明を取得するために使用されます。
結果のリスト portList には、ポート名と説明の組み合わせが含まれます。このリストを反復処理することで、必要に応じて情報を表示できます。たとえば、コンボ ボックスに利用可能なシリアル ポートの説明的なリストをユーザーに提供します。
以上がC# でシリアル ポートの説明を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。