怎样获得cpu的序列号

String __fastcall GetCPUID()
{
#define CPUID dw 0xa20f
DWORD dwCPUName, dwCPUReserved1, dwCPUReserved2, dwCPUID;
String strCPUID;
asm
{
PUSHAD
MOV EAX, 1
CPUID
MOV dwCPUName, EAX
MOV dwCPUReserved1, EBX
MOV dwCPUReserved2, ECX
MOV dwCPUID, EDX
POPAD
}
strCPUID.sprintf( "%.8X ", dwCPUID);
return strCPUID;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage(GetCPUID());
}

 

String GetCPUID()//取CPUID。{ #define CPUID dw 0xa20f //定义端口初始化值(将这个数据发向CPU) //用于输出 CPU的名称、CPU的Reserved1、CPU的Reserved2、CPU的ID DWORD dwCPUName, dwCPUReserved1,dwCPUReserved2,dwCPUID; String strCPUID; asm { PUSHAD//压栈(把前面进行的东西的信息先收集起来) MOV EAX, 1//这两行是规定用法,是Intel的CPU的标准取CPUID的命令,没什么可说。 CPUID//这两行用完后,EAX、EBX、ECX、EDX中就有你想要的信息了。 MOV dwCPUName, EAX//将EAX中的值放到dwCPUName中 MOV dwCPUReserved1, EBX//将EBX中的值放到dwCPUName中 MOV dwCPUReserved2, ECX//将ECX中的值放到dwCPUName中 MOV dwCPUID, EDX//将EDX中的值放到dwCPUName中 POPAD//出栈//(把前面进行的东西的信息释放出来) } strCPUID.sprintf("%08X-%08X-%08X", dwCPUID,dwCPUName,dwCPUReserved2);//dwCPUReserved1不用 这是标准的C语言的输出 return strCPUID;}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值