Winapi 如何使用VB6获取硬件信息,如CPU名称、总RAM等?

Winapi 如何使用VB6获取硬件信息,如CPU名称、总RAM等?,winapi,vb6,Winapi,Vb6,标题几乎解释了这一切。我需要获得一些硬件信息,如CPU信息,以及VB6的总RAM。理想情况下,它会为CPU返回如下内容: 英特尔酷睿2四核Q8500 2.66 GHz 对于RAM,可以使用简单的整数表示计算机的总MB数。您可以使用WMI获取以下信息: 注册表中也提供了此信息(如果WMI不符合您的喜好): HKLM/硬件/说明/系统/中央处理器 注意:注册表项和位置可能会更改。WMI API被设计为此类信息的更稳定的源。RAM-(在早期版本上) CPU-(恐怕不是期望的友好形式)。对于更详细的C

标题几乎解释了这一切。我需要获得一些硬件信息,如CPU信息,以及VB6的总RAM。理想情况下,它会为CPU返回如下内容:

英特尔酷睿2四核Q8500 2.66 GHz


对于RAM,可以使用简单的整数表示计算机的总MB数。

您可以使用WMI获取以下信息:

注册表中也提供了此信息(如果WMI不符合您的喜好): HKLM/硬件/说明/系统/中央处理器

注意:注册表项和位置可能会更改。WMI API被设计为此类信息的更稳定的源。

RAM-(在早期版本上)


CPU-(恐怕不是期望的友好形式)。对于更详细的CPU信息检索,有一个非常广泛的讨论。

在普通C中,如果有兴趣:

#include <intrin.h>

int cpuInfo[4] = {-1};
char CPUBrandString[0x40];

memset(CPUBrandString, 0, sizeof(CPUBrandString));

__cpuid(cpuInfo, 0x80000002);
memcpy(CPUBrandString, cpuInfo, sizeof(cpuInfo));

__cpuid(cpuInfo, 0x80000003);
memcpy(CPUBrandString + 16, cpuInfo, sizeof(cpuInfo));

__cpuid(cpuInfo, 0x80000004);
memcpy(CPUBrandString + 32, cpuInfo, sizeof(cpuInfo));
#包括
int-cpuInfo[4]={-1};
char CPUBrandString[0x40];
memset(CPUBrandString,0,sizeof(CPUBrandString));
__cpuid(cpuInfo,0x8000002);
memcpy(CPUBrandString、cpuInfo、sizeof(cpuInfo));
__cpuid(cpuInfo,0x8000003);
memcpy(CPUBrandString+16,cpuInfo,sizeof(cpuInfo));
__cpuid(cpuInfo,0x80000004);
memcpy(CPUBrandString+32,cpuInfo,sizeof(cpuInfo));

关于使用API的内存信息,请参见