Win查询注册表获取CPU与内存参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "stdafx.h"
void
    dump_machine_info(
    HANDLE fh
    )
{
    CHAR Str[MAX_PATH*3];
    CHAR MHzStr[64];
    CHAR CpuId[MAX_PATH];
    CHAR VendorId[MAX_PATH];
    TCHAR RegPath[MAX_PATH];
    ULONG i;
    HKEY hKey;
    ULONG MHz;
    DWORD t;
    ULONG l;
    MEMORYSTATUS          ms  ;
 
    for(i=0; i<128; i++) {
        wsprintf(RegPath, _T("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\%u"), i);
        if(RegOpenKey(HKEY_LOCAL_MACHINE, RegPath, &hKey) != ERROR_SUCCESS) {
            break;
        }
        // MHz
        l = sizeof(ULONG);
        if(RegQueryValueEx(hKey, _T("~MHz"), NULL, &t, (PUCHAR)&MHz, &l) != ERROR_SUCCESS) {
            sprintf(MHzStr, "?");
        } else {
            sprintf(MHzStr, "%u", MHz);
        }
        // CPU Type
        l = MAX_PATH-1;
        if(RegQueryValueEx(hKey,_T( "Identifier"), NULL, &t, (PUCHAR)CpuId, &l) != ERROR_SUCCESS) {
            sprintf(CpuId, "Unknown type");
        } else {
            CpuId[MAX_PATH-1] = 0;
        }
        // CPU Vendor
        l = MAX_PATH-1;
        if(RegQueryValueEx(hKey, _T("VendorIdentifier"), NULL, &t, (PUCHAR)VendorId, &l) != ERROR_SUCCESS) {
            sprintf(CpuId, "Unknown vendor");
        } else {
            VendorId[MAX_PATH-1] = 0;
        }
        l = sprintf(Str, "CPU-%u: %s, %s, %s MHz\n", i, CpuId, VendorId, MHzStr);
    //  TeeOutput(fh, Str, l);
        printf(Str);
        RegCloseKey(hKey);
    }
    ms.dwLength = sizeof (ms) ;
    GlobalMemoryStatus  (&ms) ;
    l = sprintf(Str, "Memory: %u Mb physical, %u Mb virtual\n", (ms.dwTotalPhys)/(1024*1024)+1, (ms.dwTotalVirtual)/(1024*1024)+1);
    //TeeOutput(fh, Str, l);
    printf(Str);
} // end dump_machine_info()
 
int wmain()
{
    dump_machine_info(NULL);
    return 0;
}

 

CPU-0: x, G, 2527 MHz
CPU-1: x, G, 2527 MHz
CPU-2: x, G, 2527 MHz
CPU-3: x, G, 2527 MHz
Memory: 1909 Mb physical, 2048 Mb virtual

Win查询注册表获取CPU与内存参数

上一篇:Windows XP with SP3大客户免激活日文版


下一篇:Jmeter之正则表达式提取器+BeanShell断言--将返回结果导出到本地文件