获取主板信息

Posted

技术标签:

【中文标题】获取主板信息【英文标题】:Get motherboard information 【发布时间】:2012-02-18 07:59:49 【问题描述】:

我开始用 Java 编写一个应用程序,它可以获取所有硬盘驱动器信息、内存信息、处理器信息并将其打印出来。我想知道是否也可以获取所有主板信息。就像是否连接了任何视频卡、网卡或声卡并获取它们的识别信息(品牌、型号等)。

基本上,我希望这个程序告诉您计算机的每个组件,并让您选择打印出来。

如何?

【问题讨论】:

Java 不是最好的语言。事实上,由于其中大部分都需要特定于操作系统的本机代码,因此说“Java 做不到”可能更准确。 您可能需要进行 JNI 调用。如果您了解平台和部署,就不会那么困难。 ***.com/questions/123575/… 我编辑了您的帖子以更好地反映所需的信息。您可能会在this post 上收集消息来源透露的信息以获取部分信息。 @Daniel 好吧,实际上我大约一周前才开始学习 Java,哈哈,但我会试一试。 @DarthVader 是的,我只是在调查。不过,我想用 Java 编写它,因为它更便携。我也想开始学习 JNI,但我开始怀疑这个程序是否可以让我用 Java 编写。 【参考方案1】:

说实话,因为这是一个低级功能,我怀疑 Java 是否适合这样的事情。

无论如何,您可以在 Linux 上运行其他程序来检查它,例如 dmidecode 等或读取 /proc 伪文件系统。

我不知道它是否真的有帮助,但是here's a web page 描述了 Windows 下的那种功能。

【讨论】:

哈哈那个表情包... +1【参考方案2】:

如果您的应用程序面向 Windows,您可以尝试使用 Java Native Access。 Here is a tutorial。它是系统原生库的一种桥梁,省略了 JNI 脏东西。如果您可以识别 Windows 库及其回调以获取所需的信息,我认为您应该可以通过 JNA 调用它们。在 Linux 上应该也可以类似。

【讨论】:

以上是关于获取主板信息的主要内容,如果未能解决你的问题,请参考以下文章

Windows API 获取主板型号和名称

[Python] iupdatable包:获取电脑主板信息(csproduct)

如何获取设备的主板序列号

LINUX中,如何查看CPU,MEM,DISK,主板的相关信息?

如何使用 CPUID 查找主板信息?

如何使用 C# 获取主板内存通道类型?