c获取cpu型号(CPU型号是什么)

CPU的型号有什么有关?

目前CPU的型号与种类繁多、功能特点不一,如果芯片组不能与CPU良好地协同工作,将严重地影响计算机的整体性能甚至不能正常工作 请采纳我的答案。

net编程怎么获取CPU型?.net编程怎么获取CPU型号

  ToString() + “,” + obj2。GetPropertyValue(“CurrentClockSpeed”)。ToString() + ” Mhz,” + Environment。ProcessorCount。ToString() + ” 个处理器”);

}

catch

{

continue;

}

}

return “未知”;

}

internal static string GetCpuID()

{

ManagementObjectCollection instances = new ManagementClass(“Win32_Processor”)。

用C语言怎么得到电脑的CPU序列号,硬盘序列号等信息

获取CPU序列号要使用 汇编指令

static DWORD g_eax;// 存储返回的eax

static DWORD g_ebx;// 存储返回的ebx

static DWORD g_ecx;// 存储返回的ecx

static DWORD g_edx;// 存储返回的edx

void Executecpuid(DWORD veax)

asm(“cpuid”

:”=a”(g_eax),

“=b”(g_ebx),

“=c”(g_ecx),

“=d”(g_edx)

:”a”(g_eax));

int isSupport;

void GetSerialNumber(WORD nibble[6])

Executecpuid(1);// 执行cpuid,参数为 eax = 1

isSupport = g_edx & (1<<18); // edx是否为1代表CPU是否存在序列号

if (FALSE == isSupport)// 不支持,返回false

{

return ;

}

Executecpuid(3);// 执行cpuid,参数为 eax = 3

memcpy(&nibble[4], &g_eax, 4); // eax为最高位的两个WORD

memcpy(&nibble[0], &g_ecx, 8); // ecx 和 edx为低位的4个WORD

}说实话,我在图书馆里看过一本叫《c语言编程实战105例》的一本书,是半年前看的,那里面有相关的代码,但是你要cpu号这种高级的东东就不好办了。我从昨天开始想你的问题。也没有什么进展,就到网上就找了找,发现网上有关于这方面的贴子,但那位高手用的是linux的环境做的,在win下不能运行,

这个是那个贴的链接。可能对你有点用吧。

对了要求cpu的序列号的话是要一个api及相关的库,要是没用这个是不可能做出正来的。我从别的地方搞了一个cpu信息函数,对你有用的:

dwordmycpuspeed()

bstrbstrmycpuname=null;

bstrbstrmypropname=null;

variantpval;

charsztext[256];

intncpunum=0;

dworddwcpuspeed=0;

iwbemclassobject*pcpuinst=null;

iwbemqualifierset*pqualset=null;

bstrmypropname=sysallocstring(l”currentclockspeed”);

if(bstrmypropname==null)

returndwcpuspeed;

while(1)

memset(sztext,0,sizeof(sztext));

sprintf(sztext,”win32_processor.deviceid=”cpu%d””,ncpunum);

bstrmycpuname=_bstr_t(sztext);

if(bstrmycpuname==null)

break;

if(psvc->getobject(bstrmycpuname,0l,null,&pcpuinst,null)!=s_ok)

break;

if(pcpuinst->get(bstrmypropname,0l,&pval,null,null)==s_ok)

ncpunum++;

dwcpuspeed+=pval.lval;

variantclear(&pval);

sysfreestring(bstrmycpuname);

bstrmycpuname=null;

if(bstrmypropname!=null)

sysfreestring(bstrmypropname);

bstrmypropname=null;

if(bstrmycpuname!=null)

sysfreestring(bstrmycpuname);

bstrmycpuname=null;

memset(sztext,0,sizeof(sztext));

sprintf(sztext,”cpu个数:%d,cpu频率:%ldmhz”,ncpunum,dwcpuspeed);

cout<<\"————————\"<<sztext<<\"————————-\"<<endl;

returndwcpuspeed;

还有一点,我在网上看到和你要求差不多的文章,但是它的代码好像少了一点什么,也做一下参考,我们一起研究一下也好。

这是那个的链接,主要是没有头文件和宏什么的。

用C语言怎么得到电脑的CPU序列号,硬盘序列号等信息

获取CPU序列号要使用 汇编指令

static DWORD g_eax;// 存储返回的eax

static DWORD g_ebx;// 存储返回的ebx

static DWORD g_ecx;// 存储返回的ecx

static DWORD g_edx;// 存储返回的edx

void Executecpuid(DWORD veax)

asm(“cpuid”

:”=a”(g_eax),

“=b”(g_ebx),

“=c”(g_ecx),

“=d”(g_edx)

:”a”(g_eax));

int isSupport;

void GetSerialNumber(WORD nibble[6])

Executecpuid(1);// 执行cpuid,参数为 eax = 1

isSupport = g_edx & (1<<18); // edx是否为1代表CPU是否存在序列号

if (FALSE == isSupport)// 不支持,返回false

{

return ;

}

Executecpuid(3);// 执行cpuid,参数为 eax = 3

memcpy(&nibble[4], &g_eax, 4); // eax为最高位的两个WORD

memcpy(&nibble[0], &g_ecx, 8); // ecx 和 edx为低位的4个WORD

}说实话,我在图书馆里看过一本叫《c语言编程实战105例》的一本书,是半年前看的,那里面有相关的代码,但是你要cpu号这种高级的东东就不好办了。我从昨天开始想你的问题。也没有什么进展,就到网上就找了找,发现网上有关于这方面的贴子,但那位高手用的是linux的环境做的,在win下不能运行,

这个是那个贴的链接。可能对你有点用吧。

对了要求cpu的序列号的话是要一个api及相关的库,要是没用这个是不可能做出正来的。我从别的地方搞了一个cpu信息函数,对你有用的:

dwordmycpuspeed()

bstrbstrmycpuname=null;

bstrbstrmypropname=null;

variantpval;

charsztext[256];

intncpunum=0;

dworddwcpuspeed=0;

iwbemclassobject*pcpuinst=null;

iwbemqualifierset*pqualset=null;

bstrmypropname=sysallocstring(l”currentclockspeed”);

if(bstrmypropname==null)

returndwcpuspeed;

while(1)

memset(sztext,0,sizeof(sztext));

sprintf(sztext,”win32_processor.deviceid=”cpu%d””,ncpunum);

bstrmycpuname=_bstr_t(sztext);

if(bstrmycpuname==null)

break;

if(psvc->getobject(bstrmycpuname,0l,null,&pcpuinst,null)!=s_ok)

break;

if(pcpuinst->get(bstrmypropname,0l,&pval,null,null)==s_ok)

ncpunum++;

dwcpuspeed+=pval.lval;

variantclear(&pval);

sysfreestring(bstrmycpuname);

bstrmycpuname=null;

if(bstrmypropname!=null)

sysfreestring(bstrmypropname);

bstrmypropname=null;

if(bstrmycpuname!=null)

sysfreestring(bstrmycpuname);

bstrmycpuname=null;

memset(sztext,0,sizeof(sztext));

sprintf(sztext,”cpu个数:%d,cpu频率:%ldmhz”,ncpunum,dwcpuspeed);

cout<<\"————————\"<<sztext<<\"————————-\"<<endl;

returndwcpuspeed;

还有一点,我在网上看到和你要求差不多的文章,但是它的代码好像少了一点什么,也做一下参考,我们一起研究一下也好。

这是那个的链接,主要是没有头文件和宏什么的。

(0)
默默的头像默默注册用户

相关推荐

发表回复

登录后才能评论