VS2010获取串口的PID&VID信息
时间: 2024-11-27 07:05:09 浏览: 40
在Visual Studio 2010中,如果你想获取连接到计算机串口的设备的PID (产品ID) 和 VID (供应商ID),通常你需要使用底层的硬件访问API,如Windows API中的SerialPort类或者是PInvokes来直接操作硬件端口。
以下是一个简单的示例,展示如何通过C#和Win32 API获取串口信息:
```csharp
using System;
using System.IO.Ports;
public class SerialInfoRetriever
{
[DllImport("hid.dll")]
private static extern uint HidD_GetDeviceDescriptor(
IntPtr deviceHandle, byte[] reportDescriptor, ref int reportDescriptorSize);
public static void GetSerialPIDVID(string portName)
{
// 创建SerialPort实例
SerialPort serial = new SerialPort(portName);
// 检查端口是否打开
if (!serial.IsOpen)
serial.Open();
// 获取设备描述符
byte[] descriptorBuffer = new byte[64];
int descriptorSize = 0;
uint result = HidD_GetDeviceDescriptor(serial.Handle, descriptorBuffer, ref descriptorSize);
// 如果获取成功
if (result == 0)
{
// PID和VID通常位于第7-8和9-10字节
int pid = BitConverter.ToInt16(descriptorBuffer, 7);
int vid = BitConverter.ToInt16(descriptorBuffer, 9);
Console.WriteLine($"Vendor ID: {vid}, Product ID: {pid}");
}
else
{
Console.WriteLine($"Failed to get device descriptor. Error code: {result}");
}
// 关闭串口
serial.Close();
}
}
// 调用函数
string portToCheck = "COM1"; // 替换为你需要查询的串口号
SerialInfoRetriever.GetSerialPIDVID(portToCheck);
```
请注意,这个例子假设你要处理的是HID设备(例如USB键盘、鼠标等)。如果你连接的是非HID类型的串口设备,可能需要使用不同的方法或库来获取PID和VID。
阅读全文