我有一个串口转 USB 设备,其中一个以上可以连接到计算机。我需要查询和检索设备连接到的 COM 端口列表。在 Windows 设备管理器中,您可以获得当前连接的设备的 COM 端口 + 友好名称。此列表是动态的。
从注册表读取不起作用,因为存储的信息是陈旧的和静态的,而不是动态的。
Devcon(来自 Microsoft)确实列出了设备连接到的端口,但它不能在我的应用程序中使用,因为它不可重新分发。
任何想法或最好的解决方案?
几周前我不得不解决一个类似的问题。我遇到了Jawin-Project,它提供了使用 WMI 查询所需的一切。它已经很老了,但如果你遵循文档,它就像一个魅力。可以在codegods 博客中找到一个不错的德语演练。
对我来说,它并没有解决所有问题(我有一些关于目标设备的非常具体的事情要找出来),我最终用 C 语言创建了一个自己的JNI(Java 本地接口)类和 DLL,并结合了 windows API。
我希望这是您搜索的内容。
使用 JNA ( https://github.com/twall/jna ) 并查看以下页面。这可能是一个有用的起点。
http://www.digitalinferno.com/wiki/Wiki.jsp?page=JNAPrintDevices
我正在研究Java Native Access,因为它提供了从纯 Java 代码访问 Windows API 的权限——无需处理 JNI。我担心 LGPL 许可证;它是否可以包含在商业产品中,但根据新闻组中的一些帖子所说,它可以。在接下来的几周内尝试后,我将回到这里。