#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与内存参数的更多相关文章

  1. C# 系统应用之通过注册表获取USB使用记录(一)

    该文章是“个人电脑历史记录清除软件”项目的系统应用系列文章.前面已经讲述了如何清除IE浏览器的历史记录.获取Windows最近访问文件记录.清除回收站等功能.现在我需要完成的是删除USB设备上的U盘. ...

  2. Linux下使用java获取cpu、内存使用率

    原文地址:http://www.voidcn.com/article/p-yehrvmep-uo.html 思路如下:Linux系统中可以用top命令查看进程使用CPU和内存情况,通过Runtime类 ...

  3. 方法:Linux 下用JAVA获取CPU、内存、磁盘的系统资源信息

    CPU使用率: InputStream is = null; InputStreamReader isr = null; BufferedReader brStat = null; StringTok ...

  4. Android获取cpu和内存信息、网址的代码

      android获取手机cpu并判断是单核还是多核 /** * Gets the number of cores available in this device, across all proce ...

  5. Python获取CPU、内存使用率以及网络使用状态代码

    Python获取CPU.内存使用率以及网络使用状态代码_python_脚本之家 http://www.jb51.net/article/134714.htm

  6. Golang获取CPU、内存、硬盘使用率

    Golang获取CPU.内存.硬盘使用率 工具包 go get github.com/shirou/gopsutil 实现 func GetCpuPercent() float64 { percent ...

  7. Java 获取CPU、内存、外网IP等硬件信息

    import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.Input ...

  8. C#根据字体名通过注册表获取该字体文件路径(win10)两种方法推荐第二种

    方法一: 直接先上源码: private System.Collections.Generic.SortedDictionary<string, string> ReadFontInfor ...

  9. 读取注册表获取Windows系统XP/7/8/10类型(使用wcscmp比较wchar[]内容)

    很多方案是采用GetVersion.GetVersionEx这两个API来查询操作系统的版本号来判断当前的操作系统是Windows系列中的哪个,在Win10没有出现前,这种方法是行的通的,但是Win1 ...

随机推荐

  1. WP8持续集成之通过命令行跑单元测试

    理论基础     对于如何在WP8上创建单元测试工程,在这里首先提供一个MSDN的文档作为参考. http://msdn.microsoft.com/en-us/library/windowsphon ...

  2. boa 服务的启动

    使用 buildroot 添加 boa 服务后,通过命令 boa 不能启动该服务,就研究了一下boa.conf的配置. etc/boa/boa.conf # 更改user 和Group 为root. ...

  3. 比特币交易本质--UTXO(Unspent Transaction Output)

    UTXO 代表 Unspent Transaction Output. Transaction 被简称为 TX,所以上面这个短语缩写为 UTXO. 现在的银行也好.信用卡也好.证券交易系统也好,互联网 ...

  4. ardunio

    fritzing,  arduino简易电路图制作软件

  5. Hadoop周边生态软件和简要工作原理(一)

    转自:http://www.it165.net/admin/html/201307/1531.html 基本都是在群里讨论的时候,别人问的入门问题,以后想到新的问题再补充进来.但是其实入门问题也很重要 ...

  6. Application应用程序级变量

    对于每一个网站访问用户都要访问的变量,应该将它设为________变量.(选择1项) A. Session B. Reques C. Response D. Application 解答:D

  7. 【转】Win32 创建控件风格不是Win XP解决方案

    有时候我有在用Win32 API来向窗体上添加控件时,通过CreateWindow或CreateWindowEx创建出来的控件的风格不像XP风格,而是像Windows 2000的风格,界面很难看.注意 ...

  8. 如何在ChemDraw中打出符号π

    很多人日常使用ChemDraw是一款非常优秀的化学绘图软件,在其绘制化学结构式或者反应式的过程中,常常需要添加各种符号.比如有的用户会需要输入希腊字符π,但是不知道用什么方法添加.本教程就来给大家介绍 ...

  9. 一些 JS页面的 调用方式init()

    //初始化.... var initAccManPage=function() { //初始化... var initChangeBtn = function(){ $("#btnChang ...

  10. a &a &a[0]之间的区别和联系

    数组中,a为数组的首地址,&a[0]为数组第一个元素的地址. 所以 a == &a[0] 但是,&a又是什么东西呢? 我们来做下面的代码测试: #include <std ...