如何从Java访问Windows设备管理器中的信息?

时间:2013-03-12 21:17:18

标签: java windows winapi

我有一个串口转USB设备,其中不止一个可以连接到电脑。我需要查询和检索设备连接到的COM端口列表。在Windows设备管理器中,您可以获取当前连接的设备的COM端口+友好名称。这个清单是动态的。

从注册表did not work读取,因为存储的信息是陈旧和静态的,而不是动态的。

Devcon(来自Microsoft)确实列出了设备所连接的端口,但它不能在我的应用中使用,因为它不可重新分发。

任何想法或最好是解决方案?

4 个答案:

答案 0 :(得分:3)

几周前我不得不解决类似的问题。我来到Jawin-Project,提供了使用WMI-Queries所需的一切。它已经很老了但如果你按照文档的说法就像魅力一样。可以找到一个很好的德语演练codegods blog

对我来说,它没有解决所有问题(我有一些非常具体的事情可以找到目标设备),我最终在C中创建了一个自己的JNI (Java Native Interface)类和DLL,并结合了Windows API。

我希望这是你搜索的内容。

答案 1 :(得分:1)

您是否尝试过此jUSB APIThis example

我希望这会对你有所帮助。

答案 2 :(得分:1)

使用JNA(https://github.com/twall/jna)并查看以下页面。这可能是一个有用的开始。

http://www.digitalinferno.com/wiki/Wiki.jsp?page=JNAPrintDevices

答案 3 :(得分:0)

我正在查看Java Native Access因为它提供了从纯Java代码访问Windows API的权限 - 没有JNI可以处理。我担心LGPL许可证;它是否可以包含在商业产品中,但是从新闻组的一些帖子中可以说,它可以。 在接下来的几个星期我试用之后,我会回到这里。