该问题本论坛已有解答,本人摘录一部分,仅做参考!
Pentium以后cpu新增CPUID指令(机器码0FH,0A 2H)来识别cpu的序列号.
我原来用的masm5.0好像还不支持,不知道delphi里怎么样?
如果在NT4.0下,可以用注册表:
HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/MultifunctionAdapter
下用数字命名的目录的最后一个下面有DiskController子目录,下面的以数字命名
的目录对应硬盘控制器,下面还有DiskPeripheral子目录,这个目录下还有以数字
命名的子目录,对应各磁盘,下面的Identifier项值对应磁盘的SN.每次NT启动时都
重新填写这个值,所以基本可以保证使用安全.我的一个程序就是用这种方法做的.
95下好象也应该有,但具体路径没有考证过.
下面是我的机器上的例子:
HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/MultifunctionAdapter/
2/DiskController/0/DiskPeripheral/0
^ ^ ^
这是多功能卡的 这是第一个磁盘 这是第一个磁盘
磁盘控制器编号 控制器
下有键名叫Identifier,类型为字符串,值3d06c81b-00000000-A
以上引自此处lhz的发言
来自:lhz
时间:99-4-1 17:28:00
ID:103795
//haha
我的发言竟然被引用
这可是很难得的哟
值得庆贺
不过呆猫兄大概想要DIR列出来的那个(XXXX-XXXX)Serial No.
这个序列号在磁盘的逻辑0扇区(用INT 25h/26h操作的那个),
具体位置我也不清除,但非常容易找出来的,用DIR+DiskEdit就
可以解决了.
另外请问茶叶蛋兄:EAX中放哪个值才能取得CPU的Serial NO?
Intel公开的EAX的参数没有这个值,只有几个检测型号和指令
兼容性的参数