📄 register.~pas
字号:
unit Register;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DiskSN;
type
TRegForm = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
function CheckCode(): Integer;
private
{ Private declarations }
public
{ Public declarations }
end;
var
PassCheck: Boolean = TRUE; // FALSE
Key1: string = 'Liu_Mazi'; // 机器吗
Key2: string = 'Mazi_Liu'; // 注册码
DiskSn: TDISKSN;
implementation
{$R *.dfm}
//加密函数
function Enc(Str:String):String;
const
XorKey:array[0..7] of Byte=($B2, $09, $AA, $55, $93, $6D, $84, $47);
var
i,j:Integer;
begin
Result:='';
j:=0;
for i:=1 to Length(Str) do
begin
Result := Result + IntToHex(Byte(Str[i]) xor XorKey[j], 2);
j := (j + 1) mod 8;
end;
end;
function TRegForm.CheckCode(): Integer;
begin
Result := Length(Key1) - Length(Key2) + 6; // FALSE
if Enc(Key1) <> Key2 then Exit;
Result := Length(Key1) - Length(Key2); // TRUE
end;
procedure TRegForm.FormShow(Sender: TObject);
begin
Self.OnShow := nil;
SetWindowLong(Button1.Handle, GWL_STYLE, WS_CHILD or WS_VISIBLE or BS_FLAT);
DiskSn := TDISKSN.Create(Self);
DiskSn.Active := TRUE;
Key1 := DiskSn.CardAddr0 + DiskSn.IDE0SN + DiskSn.SCSI0SN;
DiskSn.Destroy;
Edit1.Text := Key1;
end;
procedure TRegForm.Button1Click(Sender: TObject);
begin
Key2 := Edit2.Text;
if CheckCode() = (Length(Key1) - Length(Key2)) then
PassCheck := FALSE;
Self.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -