⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitfrmmain.pas

📁 软件注册机自动生成系统!可编译使用于任何软件系统的软件加密的注册使用
💻 PAS
字号:
unit unitFrmMain;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, registry;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  re_id: integer;
  registertemp: tregistry;
  inputstr, get_id: string;
  dy, clickedok: boolean;
begin
  dy := false; //软件是否已到注册期、及是否允许继续使用的标志,当值为false是为允许使用。
  registertemp := tregistry.create; //准备使用注册表
  with registertemp do
    begin
      rootkey := hkey_local_machine; //存放在此根下
      if openkey('software\microsoft\windows\currentversion\mark', true) then
        // 建一目录,存放标志值。当然也可以存放在已存在的目录下。怎么样,很难发现吧?
        begin
          if valueexists('gc_id') then begin //用gc_id的值作为标志,首先判断其存在否?
              re_id := readinteger('gc_id'); //读出标志值
              if (re_id <> 0) and (re_id <> 100) then begin //若标志值为0,则说明已注册。
                  //若不为0且值不到100,说明虽未注册,但允许使用的次数尚未达到。
                  re_id := re_id + 5; //允许标志的最大值为100,每次加5,则最多只可用20次。
                  writeinteger('gc_id', re_id); //将更新后的标志值写入注册表中。
                end;
              if re_id = 100 then dy := true; //假如值已到100,则应注册。
            end
          else writeinteger('gc_id', 5); //建立标志,并置初始标志值。
        end;
      if dy then begin //若dy值为true,则应提示用户输入注册码,进行注册。
          clickedok := inputquery('您使用的是非注册软件,请输入注册码:', ' ', inputstr);
          if clickedok then begin
              get_id := inttostr(111111 * 2); //注册码为222222,当然可加入更杂的算法。
              if get_id = inputstr then begin
                  writeinteger('gc_id', 0); //若输入的注册码正确,则将标志值置为0,即已注册。
                  closekey;
                  free;
                end
              else begin //若输入的注册码错误,应作出提示并拒绝让其继续使用
                  application.messagebox('注册码错误!请与作者联系!', '系统提示', mb_ok);
                  closekey;
                  free;
                  application.terminate; //中止程序运行,拒绝让其继续使用
                end;
            end
          else begin //若用户不输入注册码,也应作出提示并拒绝让其继续使用
              application.messagebox('请与作者联系,使用注册软件!', '警告框', mb_ok);
              closekey;
              free;
              application.terminate;
            end;
        end;
    end;
end;
end.

⌨️ 快捷键说明

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