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

📄 hwregister.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
字号:
unit HwRegister;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls, Registry, ShellApi;

type
  THwRegisterForm = class(TForm)
    lblMach: TLabel;
    edtMach: TEdit;
    lblReg: TLabel;
    edtReg: TEdit;
    bbtnReg: TBitBtn;
    bbtnTry: TBitBtn;
    Panel1: TPanel;
    Image1: TImage;
    bbtnHowReg: TBitBtn;
    lblDest: TLabel;
    lblHome: TLabel;
    lblEmail: TLabel;
    bbtnExit: TBitBtn;
    lblTitle: TLabel;
    bbtnWeb: TBitBtn;
    lblProduct: TLabel;
    cbProduct: TComboBox;
    Bevel1: TBevel;
    lblVer: TLabel;
    cbVer: TComboBox;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure bbtnRegClick(Sender: TObject);
    procedure bbtnTryClick(Sender: TObject);
    procedure bbtnHowRegClick(Sender: TObject);
    procedure bbtnExitClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure bbtnWebClick(Sender: TObject);
    procedure lblHomeClick(Sender: TObject);
    procedure lblEmailClick(Sender: TObject);
  private
    ACount:Integer;
    procedure SetInterface;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  HwRegisterForm: THwRegisterForm;

implementation

uses CommFun, SYSDATA;

{$R *.DFM}

procedure THwRegisterForm.SetInterface;
begin
  Font.Name:=AFontName;
  Caption:=GetDBString('COM00002001');  //软件注册
  lblTitle.Caption:=GetDBString('COM00002002');  //本软件会不断更新,为了您更好使用本软件,请您支持正版软件的发展。
  lblMach.Caption:=GetDBString('COM00002003');  //机器码
  lblReg.Caption:=GetDBString('COM00002004');  //注册码
  lblDest.Caption:=GetDBString('COM00002005');  //本软件是共享软件,不注册您只能使用45次,并且不能得到作者提供的服务,及免费升级!注册后没有任何限制,并可以免费升级,希望您支持中国共享软件的发展!
  lblHome.Caption:=GetDBString('COM00002006');  //作者网站:http://howwell.mpc.cn
  lblEmail.Caption:=GetDBString('COM00002007');  //电子邮件:how_well@163.com
  bbtnHowReg.Caption:=GetDBString('COM00002008');  //'如何注册(&H)';
  bbtnWeb.Caption:=GetDBString('COM00002009');  //'网上注册(&W)';
  bbtnReg.Caption:=GetDBString('COM00002010');  //'注册(&R)';
  bbtnTry.Caption:=GetDBString('COM00002011');  //'试用(&T)';  
  bbtnExit.Caption:=GetDBString('COM00002012');  //'退出(&X)';
  lblProduct.Caption:=GetDBString('COM00002017');  //产品名
  lblVer.Caption:=GetDBString('COM00002019');  //版本号
  cbVer.Clear;
  cbVer.Items.Add(GetDBString('COM00002020'));  //单机版
  cbVer.Items.Add(GetDBString('COM00002021'));  //5用户版
  cbVer.Items.Add(GetDBString('COM00002022'));  //10用户版
  cbVer.Items.Add(GetDBString('COM00002023'));  //20用户版
  cbVer.Items.Add(GetDBString('COM00002024'));  //50用户版
  cbVer.Items.Add(GetDBString('COM00002025'));  //无限用户版
  cbVer.ItemIndex:=0;
end;

procedure THwRegisterForm.FormCreate(Sender: TObject);
var
  S:String;
  AProdID:string;  //产品编码
  AProdVer:string;  //产品版本号
  AProdReg:string;  //产品注册码
  ARunTime:string;  //产品运行次数
  AFlag:Boolean;
  AUsers:Integer;
begin
  //设置界面信息
  SetInterface;
  ACount:=0;
  AFlag:=False;
  edtMach.Text:=Registered(GetHDSerialNumber,'HowWell');

  cbProduct.Items.Clear;
  //当所有的产品过期后(运行次数>=45),则不可再试用,必须注册后才可使用
  SYSDM.qrySys800.Close;
  SYSDM.qrySys800.SQL.Clear;
  SYSDM.qrySys800.SQL.Add('select * from SYS800 where S800_007=-1 and S800_008=-1');
  SYSDM.qrySys800.Open;
  while not SYSDM.qrySys800.Eof do
  begin
    AProdID:=trim(SYSDM.qrySys800.FieldByName('S800_001').AsString);  //产品编码
    AProdVer:=SYSDM.qrySys800.FieldByName('S800_004').AsString;  //产品版本号
    AProdReg:=SYSDM.qrySys800.FieldByName('S800_005').AsString;  //产品注册码
    ARunTime:=SYSDM.qrySys800.FieldByName('S800_006').AsString;  //产品运行次数
    AUsers:=SYSDM.qrySys800.FieldByName('S800_009').AsInteger;  //用户数量
    //已注册的产品不显示
    if AProdReg<>EncDecStr(Registered(edtMach.Text,AProdID+IntToStr(AUsers)),0) then
    begin
      cbProduct.Items.Add('['+AProdID+']  '+GetDBString(AProdID));
      if not IsTry(AProdID,AProdVer,ARunTime) then AFlag:=True;
    end;
    SYSDM.qrySys800.Next;
  end;
  SYSDM.qrySys800.Close;
  cbProduct.ItemIndex:=0;
  bbtnTry.Visible:=not AFlag;
  bbtnExit.Visible:=AFlag;

  S:=EncDecStr(ARunTime,1);
  try
    StrToInt(S);
  except
    bbtnTry.Visible:=False;
    bbtnExit.Visible:=True;
  end;

  if not bbtnExit.Visible then
    Caption:=GetDBString('COM00002013')+S+GetDBString('COM00002014')+IntToStr(45-StrToInt(S))+GetDBString('COM00002015')  //'软件注册 - 您已经使用了'  '次,还有'  '次可以使用!'
  else
    Caption:=GetDBString('COM00002016');  //'软件注册 - 试用期已过,请注册以后再使用';
end;

procedure THwRegisterForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=caFree;
  if ModalResult=1 then Exit;
  if not bbtnExit.Visible then Application.Terminate;
end;

procedure THwRegisterForm.bbtnRegClick(Sender: TObject);
var
  AProdID:String;
  AUsers:Integer;
begin
//确定
  AUsers:=0;
  case cbVer.ItemIndex of
    0:AUsers:=1;
    1:AUsers:=5;
    2:AUsers:=10;
    3:AUsers:=20;
    4:AUsers:=50;
    5:AUsers:=9999;
  end;
  AProdID:=copy(cbProduct.Text,2,3);
  if edtReg.Text=Registered(edtMach.Text,AProdID+IntToStr(AUsers)) then
  begin
    SYSDM.qrySys800.Close;
    SYSDM.qrySys800.SQL.Clear;
    SYSDM.qrySys800.SQL.Add('select * from SYS800 where S800_007=-1 and S800_001='+''''+AProdID+'''');
    SYSDM.qrySys800.Open;
    SYSDM.qrySys800.Edit;
    SYSDM.qrySys800.FieldByName('S800_005').AsString:=EncDecStr(edtReg.Text,0);  //注册码
    SYSDM.qrySys800.FieldByName('S800_009').Value:=AUsers;  //注册用户
    SYSDM.qrySys800.Post;
    ARegUsers:=ARegUsers+AUsers;
    ADemoFlag:=False;
    cbProduct.Items.Delete(cbProduct.ItemIndex);
    cbProduct.ItemIndex:=0;
    if cbProduct.Items.Count=0 then
    begin
      //注册成功,感谢您使用正版软件!
      ShowMsg('《'+GetDBString(AProdID)+'》产品'+GetDBString('UMS10000138'),1);
      ModalResult:=1;
    end else
    begin
      //注册成功,感谢您使用正版软件!是否继续下一个产品的注册?
      if ShowDialog('《'+GetDBString(AProdID)+'》产品'+GetDBString('UMS10000014'),1)=IDYES then
      begin
        edtReg.Text:='';
      end else
      begin
        ModalResult:=1;
      end;
    end;
  end else
  begin
    ACount:=ACount+1;
    ShowMsg('UMS10000015');  //无效的注册码,请重新输入
    edtReg.SetFocus;
    if ACount>=3 then Application.Terminate;
  end;
end;

procedure THwRegisterForm.bbtnTryClick(Sender: TObject);
var
  ARunTime:string;
begin
//试用(&T)
  SYSDM.qrySys800.Close;
  SYSDM.qrySys800.SQL.Clear;
  SYSDM.qrySys800.SQL.Add('select * from SYS800 where S800_007=-1');
  SYSDM.qrySys800.Open;
  while not SYSDM.qrySys800.Eof do
  begin
    ARunTime:=SYSDM.qrySys800.FieldByName('S800_006').AsString;  //产品运行次数
    ARunTime:=EncDecStr(ARunTime,1);   //解密字符串
    ARunTime:=IntToStr(StrToInt(ARunTime)+1);  //运行次数加1
    ARunTime:=EncDecStr(ARunTime,0);   //字符串加密
    SYSDM.qrySys800.Edit;
    SYSDM.qrySys800.FieldByName('S800_006').AsString:=ARunTime;
    SYSDM.qrySys800.Post;
    SYSDM.qrySys800.Next;
  end;
  SYSDM.qrySys800.Close;
  ModalResult:=1;
end;

procedure THwRegisterForm.bbtnHowRegClick(Sender: TObject);
begin
//如何注册(&W)
  HtmlHelp(Application.Handle, AHelpFile+'::/Register.htm', $0000, nil);
end;

procedure THwRegisterForm.bbtnExitClick(Sender: TObject);
begin
  Application.Terminate;
end;

procedure THwRegisterForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=VK_F1 then   HtmlHelp(Application.Handle, AHelpFile+'::/Hwreg.htm', $0000, nil);
end;

procedure THwRegisterForm.bbtnWebClick(Sender: TObject);
begin
//网上注册(&P)...
  Screen.Cursor:=crHourGlass;
  ShellExecute(Handle, nil, PChar(AHome),nil,nil,SW_NORMAL);
  Screen.Cursor:=crDefault;
end;

procedure THwRegisterForm.lblHomeClick(Sender: TObject);
begin
  lblHome.Font.Color:=clPurple;
  Screen.Cursor:=crHourGlass;
  ShellExecute(Handle, nil, PChar(AHome),nil,nil,SW_NORMAL);
  Screen.Cursor:=crDefault;
end;

procedure THwRegisterForm.lblEmailClick(Sender: TObject);
begin
  lblEmail.Font.Color:=clPurple;
  Screen.Cursor:=crHourGlass;
  ShellExecute(Handle, nil, PChar('mailto:'+AEmail),nil,nil,SW_NORMAL);
  Screen.Cursor:=crDefault;
end;

initialization
  RegisterClass(THwRegisterForm);

finalization
  UnRegisterClass(THwRegisterForm);

end.

⌨️ 快捷键说明

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