Kod yang disediakan berjaya menghitung port COM, tetapi ia tidak mempunyai fungsi untuk mendapatkan perihalan port seperti yang boleh dilihat dalam Pengurus Peranti. Untuk penyelesaian yang komprehensif, pendekatan berikut disyorkan:
<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>
Kod di atas menggunakan Instrumen Pengurusan Windows (WMI) untuk mengumpulkan maklumat terperinci tentang setiap port bersiri. ManagementObjectSearcher dikonfigurasikan untuk membuat pertanyaan untuk maklumat port COM tertentu.
Kaedah SerialPort.GetPortNames() mengembalikan tatasusunan nama port. Nama-nama ini kemudiannya digunakan untuk menapis pertanyaan WMI dan mendapatkan semula perihalan port yang sepadan.
Senarai portList yang terhasil mengandungi gabungan nama port dan perihalan. Dengan mengulangi senarai ini, anda boleh memaparkan maklumat seperti yang dikehendaki, contohnya, dalam kotak kombo untuk memberikan pengguna senarai deskriptif port bersiri yang tersedia.
Atas ialah kandungan terperinci Bagaimanakah saya Mendapatkan Perihalan Port Bersiri dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!