我的标题描述了我的问题......无法解决它。
它是通过 USB 电缆连接的串行 COM 设备(已安装适当的驱动程序)。我还可以看到系统检测到 COM 端口并存在于以下注册表项中:HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM
请指教。
更新:很抱歉没有像它必须的那样具有解释性。可能我知道为什么会发生这种情况:我的应用订阅了从 HKLM\HARDWARE\DEVICEMAP\SERIALCOMM 添加/删除值的事件。应用程序在注意到它后立即尝试打开端口。但是那个时候端口可能还没有准备好,所以这就是为什么我得到“端口不存在”的原因。只需 Thread.Sleep(2000) 解决了我的问题。
但是这个睡眠解决方案似乎不是很好的解决方案。也许我应该在其他地方检查在注册表中连接的设备?因此,当它真正存在并准备好连接时,我将连接到它。
谢谢您的反馈!喜欢堆栈溢出!