📄 unitsoftregedit.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 + -