附上部分源码的注册机
procedure TForm1.Button1Click(Sender: TObject);
const
S:array [1..100] of integer=($26,$5B,$62,$36,$34,$60,$13,$35,$19,$54,$3F,$44,$4C,$38,$5D,$33,$56,$61,$42,$21,
$3E,$2D,$23,$0E,$1E,$5F,$57,$12,$1B,$17,$22,$58,$2C,$63,$5C,$18,$37,$41,$59,$4D,
$15,$5A,$53,$0B,$05,$1C,$10,$2E,$49,$40,$0D,$07,$50,$3D,$32,$46,$0A,$43,$2B,$00,
$3B,$48,$5E,$4E,$51,$1F,$20,$3A,$01,$2A,$45,$55,$4A,$02,$52,$27,$03,$4B,$08,$3C,
$0F,$14,$24,$25,$28,$29,$16,$1D,$1A,$11,$2F,$39,$09,$47,$06,$4F,$04,$31,$0C,$30);
var
j,f,a,b,c,d:integer;
begin
randomize;
a:=1810+Random(10);
b:=Random(9999);
c:=Random(9999);
f:=s[((a div 10)+b+(c div 100)+c) mod 100 +1]*100;
j:=s[((b div 100)+a+(a div 100)) mod 100 +1];
d:=f+j;
edit1.Text:=inttostr(a);
edit2.Text:=inttostr(b);
edit3.Text:=inttostr(c);
edit4.Text:=inttostr(d);
if (a=$716) or (a=$717) then label4.Caption:='ACAD/Tech'+#13+' Version' else label4.Caption:='';
end;