1.CPU的。
function GetCPUID: TCPUID; assembler;register;
begin
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 EBX
end;
end;
这样应用:
MyCPUID: TCPUID;
str: string;
begin
MyCPUID := GetCPUID;
str := IntToStr(MyCPUID[1])
+ IntToStr(MyCPUID[2])
+ IntToStr(MyCPUID[3])
+ IntToStr(MyCPUID[4]);
str即为得到的CPUID。
上面这一段程序,我怎么运行都不行,不知道是不是要引用什么单元文件,请知道的大大指教啊。救命啊~~~
function GetCPUID: TCPUID; assembler;register;
begin
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 EBX
end;
end;
这样应用:
MyCPUID: TCPUID;
str: string;
begin
MyCPUID := GetCPUID;
str := IntToStr(MyCPUID[1])
+ IntToStr(MyCPUID[2])
+ IntToStr(MyCPUID[3])
+ IntToStr(MyCPUID[4]);
str即为得到的CPUID。
上面这一段程序,我怎么运行都不行,不知道是不是要引用什么单元文件,请知道的大大指教啊。救命啊~~~
TCPUID = Array [0..4] of Integer;加上这个。在最前面
type
TCPUID = array[1..4] of Longint;
type
tcpuid = array[1..4] of longint;
能不能给我一个完整的单元文件呢?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TCPUID = array[1..4] of Longint;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Button2: TButton;
Button3: TButton;
Image1: TImage;
Image2: TImage;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
i:integer;
implementation{$R *.dfm}
function GetCPUID: TCPUID; assembler;register;
begin
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 EBX
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var MyCPUID: TCPUID;
str: string;
begin
MyCPUID := GetCPUID;
str := IntToStr(MyCPUID[1])
+ IntToStr(MyCPUID[2])
+ IntToStr(MyCPUID[3])
+ IntToStr(MyCPUID[4]);
edit1.Text:=str;
end;
end.
我主要是在做注册,用CPU序列号安全吗?能不能指点一下呢?
同一系列的CPU其ID是一样的http://lysoft.7u7.net