7

我想确定 CPU、RAM、硬盘、GPU 等硬件信息。我的应用程序使用 C++,但基于 Qt 构建。如何获取这些信息?谢谢你。

编辑:看起来没有平台独立的方式。那么请您列出 Windows、OSX 和 Ubuntu 等著名操作系统的代码吗?

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

4

3 回答 3

2

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 站点

于 2013-08-20T06:58:30.557 回答
0

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

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

该实用程序还有一个Windows 端口

于 2013-08-20T06:47:31.880 回答
0

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

于 2013-08-21T08:02:19.670 回答