regunit.pas

来自「一套完整的软件保护示例 ├──Check..............软件保护」· PAS 代码 · 共 76 行

PAS
76
字号
unit RegUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Base64Unit, Registry, DiskSerialUnit;

type
  TRegFrm = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  RegFrm: TRegFrm;

implementation

{$R *.dfm}

procedure TRegFrm.Button1Click(Sender: TObject);
var
  Reg:TRegistry;
begin
  if Edit1.Text='' then
    begin
      MessageBox(Handle,'用户名不能为空!','提示',MB_OK);
      Exit;
    end;
  if Edit3.Text='' then
    begin
      MessageBox(Handle,'注册码不能为空!','提示',MB_OK);
      Exit;
    end;
  Reg:=TRegistry.Create;
  Reg.RootKey:=HKEY_CURRENT_USER;
  //存放注册信息的注册表位置可自己设定
  if Reg.OpenKey('\Software\Pefine',True) then
    begin
      //加密用户名保存到注册表中
      Reg.WriteString('ComSn1',Base64Encryption(Edit1.Text));
      //加密注册码保存到注册表中
      Reg.WriteString('ComSn2',Base64Encryption(Edit3.Text));  
    end;
  Reg.CloseKey;
  Reg.Destroy;
  MessageBox(Handle,'请重新启动软件校验注册码!','提示',MB_OK);
end;

procedure TRegFrm.FormCreate(Sender: TObject);
begin
  //获取硬盘系列号
  Edit2.Text:=GetHddSerial;
end;

procedure TRegFrm.Button2Click(Sender: TObject);
begin
  Close;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?