Win查询注册表获取CPU与内存参数
#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与内存参数的更多相关文章
- C# 系统应用之通过注册表获取USB使用记录(一)
该文章是“个人电脑历史记录清除软件”项目的系统应用系列文章.前面已经讲述了如何清除IE浏览器的历史记录.获取Windows最近访问文件记录.清除回收站等功能.现在我需要完成的是删除USB设备上的U盘. ...
- Linux下使用java获取cpu、内存使用率
原文地址:http://www.voidcn.com/article/p-yehrvmep-uo.html 思路如下:Linux系统中可以用top命令查看进程使用CPU和内存情况,通过Runtime类 ...
- 方法:Linux 下用JAVA获取CPU、内存、磁盘的系统资源信息
CPU使用率: InputStream is = null; InputStreamReader isr = null; BufferedReader brStat = null; StringTok ...
- Android获取cpu和内存信息、网址的代码
android获取手机cpu并判断是单核还是多核 /** * Gets the number of cores available in this device, across all proce ...
- Python获取CPU、内存使用率以及网络使用状态代码
Python获取CPU.内存使用率以及网络使用状态代码_python_脚本之家 http://www.jb51.net/article/134714.htm
- Golang获取CPU、内存、硬盘使用率
Golang获取CPU.内存.硬盘使用率 工具包 go get github.com/shirou/gopsutil 实现 func GetCpuPercent() float64 { percent ...
- Java 获取CPU、内存、外网IP等硬件信息
import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.Input ...
- C#根据字体名通过注册表获取该字体文件路径(win10)两种方法推荐第二种
方法一: 直接先上源码: private System.Collections.Generic.SortedDictionary<string, string> ReadFontInfor ...
- 读取注册表获取Windows系统XP/7/8/10类型(使用wcscmp比较wchar[]内容)
很多方案是采用GetVersion.GetVersionEx这两个API来查询操作系统的版本号来判断当前的操作系统是Windows系列中的哪个,在Win10没有出现前,这种方法是行的通的,但是Win1 ...
随机推荐
- 编写自己的代码库(javascript常用实例的实现与封装)
https://segmentfault.com/a/1190000010225928
- HTML5 + AJAX ( jQuery版本 ) 文件上传带进度条
页面技术:HTML5 + AJAX ( jQuery) 后台技术:Servlet 3.0 服务器:Tomcat 7.0 jQuery版本:1.9.1 Servlet 3.0 代码 package or ...
- 扩展RBAC用户角色权限设计方案<转>
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色- ...
- Java 07 example
留下两个例子作为参考, 1. 追逐小方块的例子 2. HashMap 和 Iterator 的例子 Example one: import acm.graphics.*; import acm.pro ...
- EasyUI 创建Tree
tree可以被从标记创建.easyui tree应该定义在ul元素中.无序列表ul元素提供了基本tree结构.每一个li元素被产生一个tree节点,子ul元素产生父tree节点.例子: < ...
- 超简单CSS3实现圆角、阴影、透明效果
CSS实现圆角,阴影,透明的方法很多,传统的方法都比较复杂,用CSS3就方便很多了,虽然现在各浏览器对CSS3的支持还不是很好,但不久的将来CSS3就会普及. 1.圆角 CSS3实现圆角有两种方法. ...
- COUNT() 函数返回匹配指定条件的行数。
SQL COUNT() 语法 SQL COUNT(column_name) 语法 COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入): SELECT COUNT(col ...
- 用newInstance与用new是区别的
用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什么会有两种创建对象方式?这个就要从可伸缩.可扩展,可重用等软件思想上解释了.Java中工厂模式经 ...
- redhat7搭建本地yum仓库
ftp服务器搭建 安装vsftpd yum install vsftpd 配置启动服务和防火墙 修改配置,由于默认不开启主动模式,需要配置开启,在/etc/vsftpd/vsftpd.conf添加如下 ...
- hdu 1022:Train Problem I(数据结构,栈,递归,dfs)
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...