FAQ: 如何列出系统中安装的中央处理器(CPU)
问:如何列出系统中安装的中央处理器(CPU)
答:
以下方法是通过注册表来得到的。在processor这个kernel service的注册表项下有相关内容。代码如下:
/*
*
* enum-proc.c - 列出系统中的中央处理器(CPU)
*
* 作者: xstring@csdn
* 日期: 2004.04.16
*
* 说明:
* 如果你要得到每个CPU的更多硬件信息, 请自己查看程序中所涉及到
* 的注册表位置。
*
*/
#define _WIN32_WINNT 0x400
#define WIN32_LEAN_AND_MEAN
#define STRICT
#include <stdio.h>
#include <tchar.h>
#include <locale.h>
#include <windows.h>
#pragma comment (lib, "advapi32.lib")
#pragma comment (lib, "user32.lib")
void print_msg (LPCTSTR api, DWORD error)
{
LPTSTR str = NULL;
FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL, error, 0, (LPTSTR)&str, 0, 0);
_tprintf (TEXT ("%s 调用失败,错误代码: %u\n %s\n"),
api, error, str);
LocalFree (str);
};
#define CHECK_ERROR(apiname) \
if (error != ERROR_SUCCESS) \
{ \
api = TEXT (apiname); \
goto failed; \
}
int main (void)
{
HKEY keyServ = NULL;
HKEY keyEnum = NULL;
HKEY key = NULL;
DWORD error = 0;
LPCTSTR api = NULL;
DWORD type, count, size, i;
setlocale (LC_ALL, ".ACP");
error = RegOpenKeyEx (HKEY_LOCAL_MACHINE,
TEXT ("SYSTEM\\CurrentControlSet\\Services\\Processor\\Enum"),
0, KEY_READ, &keyServ);
CHECK_ERROR ("RegOpenKeyEx");
error = RegOpenKeyEx (HKEY_LOCAL_MACHINE,
TEXT ("SYSTEM\\CurrentControlSet\\Enum"),
0, KEY_READ, &keyEnum);
CHECK_ERROR ("RegOpenKeyEx");
size = sizeof (count);
error = RegQueryValueEx (keyServ, TEXT ("Count"),
0, &type, (LPBYTE)&count, &size);
CHECK_ERROR ("RegQueryValueEx");
_tprintf (TEXT ("您的系统上共有 %u 个中央处理器: \n\n"), count);
for (i=0;i<count;++i)
{
TCHAR sz [0x200];
TCHAR name [0x40];
wsprintf (name, TEXT ("%d"), i);
size = sizeof (sz);
error = RegQueryValueEx (keyServ, name,
0, &type, (LPBYTE)sz, &size);
CHECK_ERROR ("RegQueryValueEx");
error = RegOpenKeyEx (keyEnum, sz,
0, KEY_READ, &key);
CHECK_ERROR ("RegOpenKeyEx");
size = sizeof (sz);
error = RegQueryValueEx (key, TEXT ("FriendlyName"),
0, &type, (LPBYTE)sz, &size);
CHECK_ERROR ("RegQueryValueEx");
_tprintf (" CPU %d - %s\n",
i, sz);
RegCloseKey (key);
key = NULL;
};
RegCloseKey (keyEnum);
RegCloseKey (keyServ);
return 0;
failed:
if (keyServ)
RegCloseKey (keyServ);
if (keyEnum)
RegCloseKey (keyEnum);
if (key)
RegCloseKey (key);
print_msg (api, error);
return error;
};
在我的系统上运行结果如下:
您的系统上共有 1 个中央处理器:
CPU 0 - Intel(R) Pentium(R) 4 CPU 1.80GHz
答:
以下方法是通过注册表来得到的。在processor这个kernel service的注册表项下有相关内容。代码如下:
/*
*
* enum-proc.c - 列出系统中的中央处理器(CPU)
*
* 作者: xstring@csdn
* 日期: 2004.04.16
*
* 说明:
* 如果你要得到每个CPU的更多硬件信息, 请自己查看程序中所涉及到
* 的注册表位置。
*
*/
#define _WIN32_WINNT 0x400
#define WIN32_LEAN_AND_MEAN
#define STRICT
#include <stdio.h>
#include <tchar.h>
#include <locale.h>
#include <windows.h>
#pragma comment (lib, "advapi32.lib")
#pragma comment (lib, "user32.lib")
void print_msg (LPCTSTR api, DWORD error)
{
LPTSTR str = NULL;
FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL, error, 0, (LPTSTR)&str, 0, 0);
_tprintf (TEXT ("%s 调用失败,错误代码: %u\n %s\n"),
api, error, str);
LocalFree (str);
};
#define CHECK_ERROR(apiname) \
if (error != ERROR_SUCCESS) \
{ \
api = TEXT (apiname); \
goto failed; \
}
int main (void)
{
HKEY keyServ = NULL;
HKEY keyEnum = NULL;
HKEY key = NULL;
DWORD error = 0;
LPCTSTR api = NULL;
DWORD type, count, size, i;
setlocale (LC_ALL, ".ACP");
error = RegOpenKeyEx (HKEY_LOCAL_MACHINE,
TEXT ("SYSTEM\\CurrentControlSet\\Services\\Processor\\Enum"),
0, KEY_READ, &keyServ);
CHECK_ERROR ("RegOpenKeyEx");
error = RegOpenKeyEx (HKEY_LOCAL_MACHINE,
TEXT ("SYSTEM\\CurrentControlSet\\Enum"),
0, KEY_READ, &keyEnum);
CHECK_ERROR ("RegOpenKeyEx");
size = sizeof (count);
error = RegQueryValueEx (keyServ, TEXT ("Count"),
0, &type, (LPBYTE)&count, &size);
CHECK_ERROR ("RegQueryValueEx");
_tprintf (TEXT ("您的系统上共有 %u 个中央处理器: \n\n"), count);
for (i=0;i<count;++i)
{
TCHAR sz [0x200];
TCHAR name [0x40];
wsprintf (name, TEXT ("%d"), i);
size = sizeof (sz);
error = RegQueryValueEx (keyServ, name,
0, &type, (LPBYTE)sz, &size);
CHECK_ERROR ("RegQueryValueEx");
error = RegOpenKeyEx (keyEnum, sz,
0, KEY_READ, &key);
CHECK_ERROR ("RegOpenKeyEx");
size = sizeof (sz);
error = RegQueryValueEx (key, TEXT ("FriendlyName"),
0, &type, (LPBYTE)sz, &size);
CHECK_ERROR ("RegQueryValueEx");
_tprintf (" CPU %d - %s\n",
i, sz);
RegCloseKey (key);
key = NULL;
};
RegCloseKey (keyEnum);
RegCloseKey (keyServ);
return 0;
failed:
if (keyServ)
RegCloseKey (keyServ);
if (keyEnum)
RegCloseKey (keyEnum);
if (key)
RegCloseKey (key);
print_msg (api, error);
return error;
};
在我的系统上运行结果如下:
您的系统上共有 1 个中央处理器:
CPU 0 - Intel(R) Pentium(R) 4 CPU 1.80GHz
...全文
相关推荐
中央处理器CPU介绍教程课件
**中央处理器CPU介绍教程课件**CPU,全称为“中央处理器”,是计算机系统的核心组件,被誉为计算机的心脏。它的主要职责是执行计算机程序中的指令,处理数据并控制硬件设备的操作。
《中央处理器—CPU》教案修改.pdf
【中央处理器—CPU】是计算机的核心部件,负责执行指令和处理数据。本教案的主要目标是让学生深入了解CPU的品牌、型号、性能指标以及选购方法,同时掌握CPU的安装与拆卸技巧。
黑苹果CPU补丁(解决安装苹果系统后不认CPU的补丁)
安装步骤大致如下:1. 下载适用于你CPU型号的黑苹果CPU补丁。2. 打开Clover或OpenCore配置文件,找到与CPU相关的部分。3.
中央处理器cpu由哪些组成 中央处理器的作用是什么.docx
【中央处理器CPU】是计算机硬件系统的核心组成部分,其主要任务是执行计算机程序并处理各种数据。CPU由几个关键部分组成,包括运算逻辑部件、寄存器部件和控制部件。
中央处理器cpu(计算机CPU的发展与基本组成)
【中央处理器CPU的发展与基本组成】章节主要涵盖了CPU的基本概念、技术指标、参数以及发展历程,主要涉及以下几个核心知识点:1.


硬件/系统
