C++ 在C+中检测硬件信息+;应用

C++ 在C+中检测硬件信息+;应用,c++,hardware,C++,Hardware,我想确定硬件信息,如CPU、RAM、硬盘、GPU等。 我的应用程序是C++,但它是基于Qt的。 如何获取这些信息? 多谢各位 编辑:似乎没有独立于平台的方法。那么,你能列出Windows、OSX和Ubuntu等著名操作系统的代码吗 编辑:我说的是处理器速度、可用RAM数量、硬盘速度、GPU速度和内存等基本信息。您可以使用这些信息获取有关硬件的各种信息。由于该软件是开放源代码(GPL),您可以查看源代码以了解它是如何实现的: Dmidecode根据SMBIOS/DMI标准报告系统BIOS中描述的有

我想确定硬件信息,如CPU、RAM、硬盘、GPU等。 我的应用程序是C++,但它是基于Qt的。 如何获取这些信息? 多谢各位

编辑:似乎没有独立于平台的方法。那么,你能列出Windows、OSX和Ubuntu等著名操作系统的代码吗

编辑:我说的是处理器速度、可用RAM数量、硬盘速度、GPU速度和内存等基本信息。

您可以使用这些信息获取有关硬件的各种信息。由于该软件是开放源代码(GPL),您可以查看源代码以了解它是如何实现的:

Dmidecode根据SMBIOS/DMI标准报告系统BIOS中描述的有关系统硬件的信息(请参阅示例输出)。这些信息通常包括系统制造商、型号名称、序列号、BIOS版本、资产标签以及许多其他详细信息,这些详细信息取决于制造商的不同兴趣级别和可靠性。这通常包括CPU插槽、扩展插槽(如AGP、PCI、ISA)和内存模块插槽的使用状态,以及I/O端口列表(如串行、并行、USB)


该实用程序还有很多功能。

MS提供了一些函数,可以通过编程方式查找这些信息(包括Windows.h):

检索有关RAM的信息,请参阅

检索有关磁盘卷上可用空间量的信息,请参阅


包含有关当前计算机系统的信息。这包括处理器的体系结构和类型、系统中处理器的数量、页面大小和其他此类信息,请参见。

您可以查看KDE源代码中名为“solid”的组件。KDE基于Qt,我认为您可以在Linux系统上,也可能在其他平台上,直接重用它。

简而言之,没有平台无关的方法。Linux、BSD和OSX之间可能有相似之处,但仍然有足够的差异,需要编写特定的代码。还有Windows,它将与POSIX系统非常不同。如果你的目标是手机/平板电脑,那么你甚至不可能获得所有的硬件。@Joachim Pileborg谢谢你的评论。我已经更新了这个问题。另外,你可能想更具体地说,你到底想要什么信息?供应商名称、技术规范、运行状态等。。。?
BOOL WINAPI GetPhysicallyInstalledSystemMemory(  _Out_  PULONGLONG TotalMemoryInKilobytes );
BOOL WINAPI GetDiskFreeSpaceEx(
 _In_opt_   LPCTSTR lpDirectoryName,
 _Out_opt_  PULARGE_INTEGER lpFreeBytesAvailable,
 _Out_opt_  PULARGE_INTEGER lpTotalNumberOfBytes,
 _Out_opt_  PULARGE_INTEGER lpTotalNumberOfFreeBytes
);
SYSTEM_INFO siSysInfo; 
// Copy the hardware information to the SYSTEM_INFO structure.  
GetSystemInfo(&siSysInfo);