疑惑?为什么在WinXP里读取CPUID序列号不唯一。

fj218 2003-10-07 09:50:25
就是下面这段程序,我在win98、win2K测试结果都唯一,但在一台Winxp下测试,返回的序列号有两种结果,也就是CPUID[2]的值,有时返回一种结果,有时运行又返回另一种结果,结果不唯一。我本来是想用4个CPUID的值作机器码的。请问大家遇到过这种现象吗?除了CPUID[2]外,其他三个值是不是也会在特定情况下出现这种不唯一的情况。我又该如何解决了?


function GetCPUID : TCPUID; assembler; register;
asm
PUSH EBX {Save affected register}
PUSH EDI
MOV EDI,EAX {@Resukt}
MOV EAX,1
DW $A20F {CPUID Command}
STOSD {CPUID[1]}
MOV EAX,EBX
STOSD {CPUID[2]}
MOV EAX,ECX
STOSD {CPUID[3]}
MOV EAX,EDX
STOSD {CPUID[4]}
POP EDI {Restore registers}
POP
...全文
120 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jpyc 2003-10-09
  • 打赏
  • 举报
回复
看看这个是否雷同:

http://218.56.11.178:8020/web/index.aspx

-》下载基地-》例程-硬件控制-》内存CPU硬盘检测/系统信息检测

5,388

社区成员

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

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