C# 如何自动检测并连接到usb设备?

C# 如何自动检测并连接到usb设备?,c#,visual-studio-2012,C#,Visual Studio 2012,我有一个usb设备(RF徽章读取器),我需要我的应用程序检测设备是否插入了witch COM端口。 我现在做的是这样的: SerialPort mySerialPort = new SerialPort("COM3"); mySerialPort.BaudRate = 9600; mySerialPort.Parity = Parity.None; mySerialPort.StopBits = StopBits.One; mySerialPort.Dat

我有一个usb设备(RF徽章读取器),我需要我的应用程序检测设备是否插入了witch COM端口。 我现在做的是这样的:

    SerialPort mySerialPort = new SerialPort("COM3");
    mySerialPort.BaudRate = 9600;
    mySerialPort.Parity = Parity.None;
    mySerialPort.StopBits = StopBits.One;
    mySerialPort.DataBits = 8;
    mySerialPort.Handshake = Handshake.None;
    mySerialPort.Open();
如果我将设备连接到另一个USB端口,应用程序将崩溃。
知道怎么做吗?

对于大多数USB串行设备,如果连接到另一个USB端口,COM端口将发生变化。这就是为什么当你试图打开COM3时它会崩溃

您最好的选择可能是将COM端口(COM3)设置为用户可配置的设置。在使用USB设备时,不应断开/重新连接USB设备,因此实际上不需要自动检测


但是,您可以尝试检测USB更改(例如,打开USB),并自动感知设备(涉及一点通信)。成功与否可能取决于USB设备驱动程序。

您是否尝试过stackoverflow或其他任何有关stackoverflow的问题?我尝试过一些,但没有任何帮助。您是否尝试过将其放入
Try Catch
如果我有>1台设备连接到计算机,该怎么办?我怎么知道我要搜索的设备是什么?根据我之前在连接Arduino时查找的信息,你必须发送一个数据,然后在每个端口上进行3路握手,以检查这是否是你想要的设备。但我没有仔细研究。