📄 zcfzstart.pas
字号:
unit ZCFZStart;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, jpeg, SUIDlg, Math, JclSysUtils;
type
TZCFZStartFrm = class(TForm)
Panel1: TPanel;
Image1: TImage;
Label1: TLabel;
Timer1: TTimer;
suiMessageDialog1: TsuiMessageDialog;
procedure Timer1Timer(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ZCFZStartFrm: TZCFZStartFrm;
implementation
uses HardwareInfo, FunctionModel, ZCFZRJZC;
{$R *.DFM}
procedure TZCFZStartFrm.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled:=false;
end;
procedure TZCFZStartFrm.FormDestroy(Sender: TObject);
begin
screen.Cursor:=crDefault;
end;
procedure TZCFZStartFrm.FormShow(Sender: TObject);
begin
Screen.Cursor:=crHourGlass;
image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) +
'风景这边独好.jpg');
end;
procedure TZCFZStartFrm.FormCreate(Sender: TObject);
var
LastRunDate: TDateTime;
dtNow: TDateTime;
HardwareInfo: THardwareInfo;
HardDriverSerial: string;
ChrIndex: Integer;
HardSerial: Integer;
HardSerialChar: Char;
Registrykey: string;
begin
//日期检查
dtNow := Now;
InstallDate := GetRegistryDate('\Software\haichang\传票打印',
'InstalledDate');
LastRunDate := GetRegistryDate('\Software\haichang\传票打印', 'LastRunDate',
dtNow);
bolISExpire := LastRunDate > dtNow;
//注册码检查
HardSerialString := RegistryGetString('\Software\haichang\报表处理',
//获取注册表中的安装码
'Installedkey');
if HardSerialString = '' then //如果安装码不存在,则计算安装码并记入注册表
begin
HardwareInfo := THardwareInfo.Create;
try
HardDriverSerial := Trim(HardwareInfo.GetIDEDiskSerialNumber);
finally
HardwareInfo.Free;
end;
HardSerial := 0;
for ChrIndex := 1 to Length(HardDriverSerial) do //由硬件特征码进行计算安装码
begin
HardSerialChar := HardDriverSerial[ChrIndex];
HardSerial := HardSerial + (Trunc(Power(4, Length(HardDriverSerial) -
ChrIndex))) * Ord(HardSerialChar);
end;
if HardSerial < 0 then
HardSerial := ABS(HardSerial);
HardSerialString := IntToStrZeroPad(HardSerial, 12);
//固定安装码为12个字符长,
RegistrySetString('\Software\haichang\报表处理', 'Installedkey',
HardSerialString);
end;
Registrykey := RegistryGetString('\Software\haichang\报表处理',
//获取注册表中的注册码
'Registration');
bolRegisted := CheckRegistraton(HardSerialString, Registrykey, ExpireDate);
if not bolRegisted then
ExpireDate := InstallDate + 61;
bolISExpire := bolISExpire and (not bolRegisted);
bolISExpire := bolISExpire or ((ExpireDate <> 0) and (ExpireDate < dtNow));
if bolISExpire then
begin
if MessageBox(Handle,
'软件已到期,停止服务。请与软件提供人联系。'#13#10#13#10 +
'输入注册码请点击“是”按钮。',
'软件已过期', MB_YESNO or MB_ICONINFORMATION) = mrYes then
begin
ZCFZRJZCFrm := TZCFZRJZCFrm.Create(Self);
try
ZCFZRJZCFrm.ShowModal;
if ZCFZRJZCFrm.ModalResult = mrOk then
begin
RegistrySetString('\Software\Haichang\报表处理', 'Registration',
ZCFZRJZCFrm.RzMaskEdit2.Text);
bolRegisted := True;
end;
finally
ZCFZRJZCFrm.Free;
end;
end;
application.Terminate;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -