## C# 获取串口号及详细信息### 简介在 C# 中,我们可以通过多种方式获取计算机系统中可用串口的信息,包括串口号、描述、硬件 ID 等。这对于开发与串口设备通信的应用程序至关重要。### 获取串口号列表
1. 使用 `System.IO.Ports.SerialPort.GetPortNames()` 方法:
```csharp using System.IO.Ports;// 获取所有可用的串口号 string[] portNames = SerialPort.GetPortNames();// 遍历并输出串口号 foreach (string portName in portNames) {Console.WriteLine(portName); } ```
2. 使用 `ManagementObjectSearcher` 类:
```csharp using System.Management;// 获取 WMI 查询对象 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT
FROM Win32_SerialPort");// 遍历并输出串口号和描述 foreach (ManagementObject queryObj in searcher.Get()) {Console.WriteLine($"串口号: {queryObj["DeviceID"]}");Console.WriteLine($"描述: {queryObj["Description"]}"); } ```### 获取串口详细信息
1. 使用 `System.IO.Ports.SerialPort` 类:
```csharp using System.IO.Ports;// 指定串口号 string portName = "COM1";// 创建串口对象 SerialPort serialPort = new SerialPort(portName);// 获取串口属性 Console.WriteLine($"波特率: {serialPort.BaudRate}"); Console.WriteLine($"数据位: {serialPort.DataBits}"); Console.WriteLine($"奇偶校验: {serialPort.Parity}"); Console.WriteLine($"停止位: {serialPort.StopBits}"); ```
2. 使用 `ManagementObject` 类:
```csharp using System.Management;// 获取 WMI 对象 ManagementObject queryObj = new ManagementObject("Win32_SerialPort.DeviceID='" + portName + "'"); queryObj.Get();// 获取串口属性 Console.WriteLine($"描述: {queryObj["Description"]}"); Console.WriteLine($"硬件 ID: {queryObj["PNPDeviceID"]}"); Console.WriteLine($"供应商: {queryObj["Manufacturer"]}"); ```### 注意事项
确保你的应用程序具有访问串口设备的权限。
使用 `SerialPort.GetPortNames()` 方法获取的串口号可能因系统配置而异。
使用 `ManagementObject` 类需要添加对 `System.Management` 的引用。### 小结通过以上方法,你可以轻松地在 C# 程序中获取计算机系统中可用的串口号以及详细信息,为串口通信开发提供必要的信息。
C
获取串口号及详细信息
简介在 C
中,我们可以通过多种方式获取计算机系统中可用串口的信息,包括串口号、描述、硬件 ID 等。这对于开发与串口设备通信的应用程序至关重要。
获取串口号列表**1. 使用 `System.IO.Ports.SerialPort.GetPortNames()` 方法:**```csharp using System.IO.Ports;// 获取所有可用的串口号 string[] portNames = SerialPort.GetPortNames();// 遍历并输出串口号 foreach (string portName in portNames) {Console.WriteLine(portName); } ```**2. 使用 `ManagementObjectSearcher` 类:**```csharp using System.Management;// 获取 WMI 查询对象 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_SerialPort");// 遍历并输出串口号和描述 foreach (ManagementObject queryObj in searcher.Get()) {Console.WriteLine($"串口号: {queryObj["DeviceID"]}");Console.WriteLine($"描述: {queryObj["Description"]}"); } ```
获取串口详细信息**1. 使用 `System.IO.Ports.SerialPort` 类:**```csharp using System.IO.Ports;// 指定串口号 string portName = "COM1";// 创建串口对象 SerialPort serialPort = new SerialPort(portName);// 获取串口属性 Console.WriteLine($"波特率: {serialPort.BaudRate}"); Console.WriteLine($"数据位: {serialPort.DataBits}"); Console.WriteLine($"奇偶校验: {serialPort.Parity}"); Console.WriteLine($"停止位: {serialPort.StopBits}"); ```**2. 使用 `ManagementObject` 类:**```csharp using System.Management;// 获取 WMI 对象 ManagementObject queryObj = new ManagementObject("Win32_SerialPort.DeviceID='" + portName + "'"); queryObj.Get();// 获取串口属性 Console.WriteLine($"描述: {queryObj["Description"]}"); Console.WriteLine($"硬件 ID: {queryObj["PNPDeviceID"]}"); Console.WriteLine($"供应商: {queryObj["Manufacturer"]}"); ```
注意事项* 确保你的应用程序具有访问串口设备的权限。 * 使用 `SerialPort.GetPortNames()` 方法获取的串口号可能因系统配置而异。 * 使用 `ManagementObject` 类需要添加对 `System.Management` 的引用。
小结通过以上方法,你可以轻松地在 C
程序中获取计算机系统中可用的串口号以及详细信息,为串口通信开发提供必要的信息。