我想确定 CPU、RAM、硬盘、GPU 等硬件信息。我的应用程序使用 C++,但基于 Qt 构建。如何获取这些信息?谢谢你。
编辑:看起来没有平台独立的方式。那么请您列出 Windows、OSX 和 Ubuntu 等著名操作系统的代码吗?
编辑:我说的是处理器速度、可用 RAM 量、硬盘速度、GPU 速度和内存等基本信息。
MS 提供了一些函数来以编程方式查找这些信息(包括 Windows.h):
BOOL WINAPI GetPhysicallyInstalledSystemMemory( _Out_ PULONGLONG TotalMemoryInKilobytes );
检索有关 RAM 的信息,请参阅文档。
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);
包含有关当前计算机系统的信息。这包括处理器的体系结构和类型、系统中的处理器数量、页面大小和其他此类信息,请参阅此MS 站点。
您可以使用它dmidecode
来获取有关您的硬件的各种信息。由于该软件是开源的(GPL),您可以查看源代码以了解它是如何完成的:
Dmidecode 根据 SMBIOS/DMI 标准报告系统 BIOS 中描述的有关系统硬件的信息(请参阅示例输出)。这些信息通常包括系统制造商、型号名称、序列号、BIOS 版本、资产标签以及许多其他不同程度的兴趣和可靠性的详细信息,具体取决于制造商。这通常包括 CPU 插槽、扩展插槽(例如 AGP、PCI、ISA)和内存模块插槽的使用状态,以及 I/O 端口列表(例如串行、并行、USB)。
该实用程序还有一个Windows 端口。
您可以查看 KDE 源代码中名为“solid”的组件。KDE 是基于 Qt 的,我认为你可以在 Linux 系统上重用它,也许也可以在其他平台上重用它。