用c++ builder怎样获得cpu的序列号

zsqat 2004-11-19 09:42:01
我想用c++ builder编个获取本机cup序列号的程序,不知怎么做?谢谢大家帮帮我
...全文
823 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
JiangChengjie 2005-01-23
  • 打赏
  • 举报
回复
在其它地方看到过
asm
{
PUSHAD
MOV EAX, 3//此处用3试试,EDX,ECX中为8位CPUID号
CPUID

}
weill 2004-11-28
  • 打赏
  • 举报
回复
如上所述,CPU序列号只能用于区分不同系列的CPU(包括生产日期的不同),同一批次的CPU序号是相同的。
安吉儿给出的代码是标准的取CPU序号的代码。
不过,好象不是很完全。
其实,一个CPU序列号应是四组数据。
milkwayhong 2004-11-28
  • 打赏
  • 举报
回复
zt

没有的!

同一系列的CPU其ID是相同的!

现在不存在P3 Slot时代的CPU唯一ID了

http://lysoft.7u7.net
xiaomatian 2004-11-28
  • 打赏
  • 举报
回复
以前有代码的,一时没找到,sorry
zsqat 2004-11-26
  • 打赏
  • 举报
回复
高手们帮帮我怎么用c++ builder 获取计算机的cpu序列号
zsqat 2004-11-23
  • 打赏
  • 举报
回复
就是的,用上面的代码在不同机子上获得的cup序列号是相同的,不对吧!不同的cpu序列号怎么可能相同呢?
应该怎么做?
zsqat 2004-11-22
  • 打赏
  • 举报
回复
怎样才能得到cup的序列号
wt_sanlian 2004-11-22
  • 打赏
  • 举报
回复
up
zsqat 2004-11-22
  • 打赏
  • 举报
回复
up 没有的,它上面讲的是获取cpu的型号,或者版本号
yal_1224 2004-11-22
  • 打赏
  • 举报
回复
在C++Builder6程序设计与实例里有这个函数,很简单的,
h98458 2004-11-20
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button10Click(TObject *Sender)
{


/*GUID guid;
char address[30];
if(CoCreateGuid(&guid)!=S_OK)
ShowMessage("Error");
else
{
sprintf(address,
"%02X-%02X-%02X-%02X-%02X-%02X-%02X-%02X",
guid.Data4[0],guid.Data4[1],guid.Data4[2],guid.Data4[3],
guid.Data4[4],guid.Data4[5],guid.Data4[6],guid.Data4[7]);
address[25] ='\0';
ShowMessage(address);
} */

typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff [30];
}ASTAT, * PASTAT;

ASTAT Adapter;
NCB ncb;
UCHAR uRetCode;
AnsiString MachineName;
char NetName[50];
memset( &ncb, 0, sizeof(ncb) );
ncb.ncb_command = NCBRESET;
ncb.ncb_lana_num = 0;
uRetCode = Netbios( &ncb );
if (uRetCode!=0)
ShowMessage("网卡初始化失败!");
memset(&ncb, 0, sizeof(ncb) );
ncb.ncb_command = NCBASTAT;
ncb.ncb_lana_num = 0;
memset(ncb.ncb_callname,' ',NCBNAMSZ);
MachineName=Edit1->Text.UpperCase();
strncpy(ncb.ncb_callname,MachineName.c_str(),MachineName.Length());
ncb.ncb_buffer = (char *) &Adapter;
ncb.ncb_length = sizeof(Adapter);

uRetCode = Netbios( &ncb );
if ( uRetCode == 0 )
{
AnsiString Address;
int i;
Address="";
for(i=0;i<6;i++)
{
Address+=IntToHex((int)Adapter.adapt.adapter_address[i],2);
}
ShowMessage(Address);
}

}
//---------------------------------------------------------------------------
cpuid用汇编,但是只有p3才有,以前的是"genie intel"之类的.
zsqat 2004-11-20
  • 打赏
  • 举报
回复
楼上的检测的好像是网卡的mac地址 不是CPU序列号阿?
constantine 2004-11-19
  • 打赏
  • 举报
回复
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());
}
//---------------------------------------------------------------------------
zsqat 2004-11-19
  • 打赏
  • 举报
回复
不对吧,照着上面的程序作了,检测出每一台机子的cup序列号都是0383F9FF,我觉得每个机子的cpu序列号应该不样的
zsqat 2004-11-19
  • 打赏
  • 举报
回复
谢谢指点

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧