Delphi下CPU GetCPUID实现(x86和x64)


本文整理自网络,侵删。

 

以下方法还是通过汇编实现,不过针对x64做了调整,以支持x86和x64两种环境,代码如下:

// 获取cpu序列号

type

  TCPUID = array [1 .. 4] of Longint;

 

function GetCPUID: TCPUID;

asm

  {$IF Defined(CPUX86)}

  push  ebx

  push  edi

  mov   edi, eax

  mov   eax, 1

  dw    $A20F

  stosd

  mov   eax, ebx

  stosd

  mov   eax, ecx

  stosd

  mov   eax, edx

  stosd

  pop   edi

  pop   ebx

  {$ELSEIF Defined(CPUX64)}

  PUSH    RBX

  PUSH    RDI

  MOV     RDI,RCX

  MOV     EAX,1

  CPUID

  mov    [rdi], eax;

  mov    [rdi+4], ebx;

  mov    [rdi+8], ecx;

  mov    [rdi+12], edx;

  POP     RDI

  POP     RBX

  {$IFEND}

  (* 调用示例

  var id: TCPUID;

  id := GetCPUID;

  ShowMessage(IntToHex(id[4], 8) + IntToHex(id[1], 8));

   *)

end;


https://www.offeu.com/www/index_id_166.html

相关阅读 >>

在xp/2k 下实现 win+ctrl+del 等键的屏蔽的方法

Delphi 获取硬盘序列号(ide,sata,scsi)

Delphi获取进程的命令行参数

Delphi的控制台程式添加图标

Delphi研究之驱动开发篇(六)--利用section与用户模式程序通讯(上)

Delphi twebbrowser控件禁用鼠标右键

Delphi 判断目录是否可写

Delphi package 把函数单元做成bpl调用

Delphi hbp-1100u 欧姆龙血压计的usb调用方法

Delphi dbgrid鼠标滚屏

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...