获取CPU 序列号问题

bao20080513shengbin bao20080513shengbin 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
	
unsigned long s1,s2;
unsigned char vendor_id[]="------------";//CPU提供商ID
CString str1,str2,str3;
// 以下为获得CPU ID的汇编语言指令
_asm // 得到CPU提供商信息
{
xor eax,eax // 将eax清0
cpuid // 获取CPUID的指令
mov dword ptr vendor_id,ebx
mov dword ptr vendor_id[+4],edx
mov dword ptr vendor_id[+8],ecx
}
str1.Format("%s",vendor_id);

_asm // 得到CPU ID的高32位
{
mov eax,01h
xor edx,edx
cpuid
mov s1,edx
mov s2,eax
}
str2.Format("%08X-%08X\n",s1, s2);

_asm // 得到CPU ID的低64位
{
mov eax,03h
xor ecx,ecx
xor edx,edx
cpuid
mov s1,edx
mov s2,ecx
}
str3.Format("%08X-%08X\n",s1,s2);

str2=str2+str3;

str1+="\r\n";
str1+=str2;

MessageBox(str1);

我在获取CPU 序列号时,使用了如下从网上找的程序,但只能输出 str2。 str3输出全为零,GenuineIntel
BFEBFBFF-0001067A
00000000-00000000
不能准确获取
我用网上下的一个工具却能全部得到此序列号。
BFEBFBFF-0001067A 01020800 0400E33BD
不知什么原因,得不到完整序列号,或者看看有没有其它办法等到CPU 序列号。特别感谢!
...全文
评论 14
收藏 已收藏
分享
返回顶部
bao20080513shengbin
VC/MFC 16,550 成员 421,605 内容