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

📄 unitsoftregedit.pas

📁 delphi做的注册码验证程序
💻 PAS
字号:
unit UnitSoftRegedit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls,Registry,iniFiles, XPMenu;

type
  Tfrm_SoftRegedit = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    BtStart: TSpeedButton;
    BtExit: TSpeedButton;
    Edit_KeyCode: TLabeledEdit;
    TabSheet2: TTabSheet;
    BtNext: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Edit_ProductId: TLabeledEdit;
    Edit_RegeditName: TLabeledEdit;
    TabSheet3: TTabSheet;
    BtOK: TSpeedButton;
    SpeedButton5: TSpeedButton;
    Edit_UserID: TLabeledEdit;
    Edit_UserName: TLabeledEdit;
    BtProves: TSpeedButton;
    BtUpcmd: TSpeedButton;
    XPMenu1: TXPMenu;
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    procedure BtStartClick(Sender: TObject);
    procedure BtNextClick(Sender: TObject);
    procedure BtOKClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BtProvesClick(Sender: TObject);
    procedure BtUpcmdClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BtExitClick(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frm_SoftRegedit: Tfrm_SoftRegedit;
  Reg:TRegistry;
implementation

uses UnitkeyCryptClass, UnitSoftKeyClass;

{$R *.dfm}

procedure Tfrm_SoftRegedit.BtStartClick(Sender: TObject);
var
    RegeditID:String;
begin
    if trim(Edit_KeyCode.Text)='' then
    begin
        Application.MessageBox('【注册用户名】不能为空!请输入:【注册用户名】',Pchar(Application.Title),MB_ICONERROR+MB_OK);
        Exit;
    end;
    Reg:=TRegistry.Create;
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    Reg.OpenKey('Software\Microsoft\Windows NT\CurrentVersion',False);
    RegeditID:=Reg.ReadString('ProductId');
    Reg.CloseKey;
    Reg.Free;
    //将注册名加密
    Edit_RegeditName.Text:= Decrypt(Trim(Edit_KeyCode.Text),'luersoft');
    //因为序列号太长没有加密
    Edit_ProductId.Text  := Trim(RegeditID);

    TabSheet2.TabVisible:=True;
    TabSheet1.TabVisible:=False;
    TabSheet3.TabVisible:=False;
end;

procedure Tfrm_SoftRegedit.BtNextClick(Sender: TObject);
var
    re_id           : integer;
    Soft_UserName   : String;
    RegisterTemp    : TRegistry;
    inputstr,get_id : string;
    dy,clickedok    : boolean;
    Myini           : TiniFile;
    tempstr         : String;
begin
    RegisterTemp := TRegistry.Create; //准备使用注册表
    with registerTemp do
    begin
        RootKey:=HKEY_LOCAL_MACHINE; //存放在此根下
        if OpenKey('Software\Microsoft\Windows\CurrentVersion\LuerSoft',True) then
        // 建一目录,存放标志值。
        begin
            try
                RegisterTemp.WriteString('Regedit_UserName',Trim(Edit_KeyCode.Text));
            except
                Application.MessageBox('读系统【注册表】时出错!请确认!',Pchar(Application.Title),MB_ICONERROR+MB_OK);
                Exit;
            end;
        end;
    end;
    TabSheet1.TabVisible:=False;
    TabSheet2.TabVisible:=False;
    TabSheet3.TabVisible:=True;
end;

procedure Tfrm_SoftRegedit.BtOKClick(Sender: TObject);
var
    RegeditID   : string;
    RegeditName : String;
    tempStr     : string;
    formeID     : String;
    formeName   : String;
    AuthName    : String; //022015013(zzh加密的结果)
    RegisterTemp: TRegistry;
    Myini       : TIniFile;
begin
    //从注册表读“产品序列号”
    Reg:=TRegistry.Create;
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    Reg.OpenKey('Software\Microsoft\Windows NT\CurrentVersion',False);
    RegeditID:=Reg.ReadString('ProductId');
    Reg.CloseKey;
    Reg.Free;
    //从注册表读“注册用户名”
    RegisterTemp := TRegistry.Create; //准备使用注册表
    with registerTemp do
    begin
        RootKey:=HKEY_LOCAL_MACHINE; //存放在此根下
        if OpenKey('Software\Microsoft\Windows\CurrentVersion\LuerSoft',True) then
        // 建一目录,存放标志值。
        begin
            try
                RegeditName:=ReadString('Regedit_UserName');
            except
            end;
        end;
    end;
    //注册生成器生成的加密后的字符串
    tempStr:=Trim(Edit_UserName.Text);
    tempStr:=Encrypt(Trim(tempStr),'luersoft');//解密后的字符串
    //检验最后3个字符是否为固定的字符
    AuthName:=Copy(tempStr,length(tempStr)-3+1,3);
    if Trim(AuthName)<>'zzh' then
    begin
        Application.MessageBox('用户号注册出错!',Pchar(Application.Title),MB_ICONINFORMATION+MB_OK);
        Exit;
    end;
    formeName:=Copy(tempStr,1,length(tempStr)-3);//得到解密后的“产品序列号”
    //将字符解密
    formeID:=Encrypt(Trim(Edit_UserID.Text),'luersoft');//解密后的字符串
    //判断他们是否和注册表的值一致
    if (Trim(formeID)<>Trim(RegeditID)) and (Trim(formeName)<>Trim(RegeditName))then
    begin
        if Trim(formeID)<>Trim(RegeditID) then
        begin
            Application.MessageBox('产品序列号注册出错!',Pchar(Application.Title),MB_ICONINFORMATION+MB_OK);
            Exit;
        end;
        if Trim(formeName)<>Trim(RegeditName) then
        begin
            Application.MessageBox('用户号注册出错!',Pchar(Application.Title),MB_ICONINFORMATION+MB_OK);
            Exit;
        end;
        Exit;
    end
    else
    begin
        Application.MessageBox('软件注册成功!请确认!',Pchar(Application.Title),MB_ICONINFORMATION+MB_OK);
        Myini:=TIniFile.Create(ExtractFileDir(application.Exename)+'\SystemSet.ini');
        Myini.WriteString('SoftWareSet','Product_Id',Trim(Edit_UserID.Text));
        Myini.WriteString('SoftWareSet','RegeditName',Trim(Edit_UserName.Text));
        Myini.Free;
    end;
end;

procedure Tfrm_SoftRegedit.FormShow(Sender: TObject);
begin
    TabSheet2.TabVisible:=False;
    TabSheet3.TabVisible:=False;
end;

procedure Tfrm_SoftRegedit.BtProvesClick(Sender: TObject);
begin
    Edit_ProductId.Clear;
    Edit_RegeditName.Clear;
    TabSheet1.TabVisible:=True;
    TabSheet2.TabVisible:=False;
    TabSheet3.TabVisible:=False;
end;

procedure Tfrm_SoftRegedit.BtUpcmdClick(Sender: TObject);
begin
    Edit_UserID.Clear;
    Edit_UserName.Clear;
    TabSheet1.TabVisible:=False;
    TabSheet2.TabVisible:=False;
    TabSheet3.TabVisible:=True;
end;

procedure Tfrm_SoftRegedit.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
    Action:=cafree;
end;

procedure Tfrm_SoftRegedit.BtExitClick(Sender: TObject);
begin
    Edit_KeyCode.Clear;
end;

procedure Tfrm_SoftRegedit.SpeedButton2Click(Sender: TObject);
begin
    Close;
end;

procedure Tfrm_SoftRegedit.SpeedButton5Click(Sender: TObject);
begin
    Close;
end;

end.

⌨️ 快捷键说明

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