获取主板序列号

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

function GetCPUID : TCPUID; assembler; register;
asm
  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
end;

function ByteToHex(P:Pointer;iLen:Integer):String;
var I:integer;
begin
if High(PByteArray(P)^)+1>=ilen then
for I:=1 To ilen do
  Result:=ConCat(Result,' ',IntToHex(PByteArray(P)^[i-1],2));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Tmp:TCPUID;
  sTmpStr:String;
begin
  Tmp:=GetCPUID;
  sTmpStr:=ByteToHex(@tmp,SizeOf(TCPUID));
  Memo1.text:=sTmpStr;
end;

posted @ 2013-01-06 15:57  骑着骆驼逛沙漠  阅读(314)  评论(0编辑  收藏  举报