GetCPUID for lazarus(windows),兼容32/64位,直接上代码:
unit GetCPUIDUnit; {$mode objfpc}{$H+} {$ASMMODE intel} interface uses Classes, SysUtils; function GetCPUID:string; implementation function GetCPUID:string; var _ecx,_edx,_eaX,_ebx:LongWord; begin //执行CPUID指令,EAX=1/RAX=1 asm {$IFDEF CPUX64} MOV RAX,1 PUSH RCX PUSH RBX PUSH RDX {$ELSE} MOV EAX,1 PUSH ECX PUSH EBX PUSH EDX {$ENDIF} cpuid //执行cPUID指令 mOV _eaX,eaX mOV _ebx,ebx mOV _ecX,ecX mov _edx,edx {$IFDEF CPUX64} POP RDX POP RBX POP RCX {$ELSE} POP EDX POP EBX POP ECX {$ENDIF} end; //将寄存器值转换为十六进制字符串 Result := IntToHex(_eax,8)+IntToHex(_ecx,8)+IntToHex(_edx,8); end; end.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2023-01-06 lazarus 使用unidac取mssql低版本(2000)数据时中文出现乱码的解决办法(2024-3-1更新:本方法也适用于mssql 2014等varchar字段中文乱码)