DELPHI程序注册码设计
点击次数:59 次 发布日期:2008-11-09 08:38:38 作者:源代码网
|
源代码网推荐 <注册例程> 源代码网推荐 在DELPHI下新建一工程,放置Edit1,Edit2,Label1,Label2,Button1组件.具体代码如下: 源代码网推荐 源代码网推荐 unit Unit1; 源代码网推荐 interface 源代码网推荐 uses 源代码网推荐 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 源代码网推荐 StdCtrls,Registry;//在此加上Registry以便调用注册表. 源代码网推荐 type 源代码网推荐 TForm1 = class(TForm) 源代码网推荐 Button1: TButton; 源代码网推荐 Edit1: TEdit; 源代码网推荐 Edit2: TEdit; 源代码网推荐 Label1: TLabel; 源代码网推荐 Label2: TLabel; 源代码网推荐 procedure Button1Click(Sender: TObject); 源代码网推荐 procedure FormCreate(Sender: TObject); 源代码网推荐 private 源代码网推荐 Function Check():Boolean; 源代码网推荐 Procedure CheckReg(); 源代码网推荐 Procedure CreateReg(); 源代码网推荐 { Private declarations } 源代码网推荐 public 软件开发网 www.mscto.com 源代码网推荐 { Public declarations } 源代码网推荐 end; 源代码网推荐 var 源代码网推荐 Form1: TForm1; 源代码网推荐 PName:string; //全局变量,存放用户名和注册码. 源代码网推荐 PPass:integer; 源代码网推荐 implementation 源代码网推荐 {$R *.DFM} 源代码网推荐 Procedure TForm1.CreateReg();//创建用户信息. 源代码网推荐 var Rego:TRegistry; 源代码网推荐 begin 源代码网推荐 Rego:=TRegistry.Create; 源代码网推荐 Rego.RootKey:=HKEY_USERS; 源代码网推荐 rego.OpenKey(".DEFAULTSoftwareAngelSoftDemo",True);//键名为AngelSoftDemo,可自行修改. 源代码网推荐 Rego.WriteString("Name",PName);//写入用户名. 源代码网推荐 Rego.WriteInteger("Pass",PPass);//写入注册码. 源代码网推荐 Rego.Free; 源代码网推荐 ShowMessage("程序已经注册,谢谢!"); 源代码网推荐 CheckReg; //刷新. 源代码网推荐 end; 源代码网推荐 Procedure TForm1.CheckReg();//检查程序是否在注册表中注册. 源代码网推荐 var Rego:TRegistry; 源代码网推荐 begin 源代码网推荐 Rego:=TRegistry.Create; 源代码网推荐 Rego.RootKey:=HKEY_USERS; 源代码网推荐 IF Rego.OpenKey(".DEFAULTSoftwareAngelSoftDemo",False) then 源代码网推荐 begin 源代码网推荐 Form1.Caption:="软件已经注册"; 源代码网推荐 Button1.Enabled:=false; 源代码网推荐 Label1.Caption:=rego.ReadString("Name");//读用户名. 源代码网推荐 Label2.Caption:=IntToStr(Rego.ReadInteger("Pass")); //读注册码. 源代码网推荐 rego.Free; 源代码网推荐 end 源代码网推荐 else Form1.Caption:="软件未注册,请注册"; 源代码网推荐 end; 源代码网推荐 Function TForm1.Check():Boolean;//检查注册码是否正确. 源代码网推荐 var 源代码网推荐 Temp:pchar; 源代码网推荐 Name:string; 源代码网推荐 c:char; 源代码网推荐 i,Long,Pass:integer; 源代码网推荐 begin 源代码网推荐 Pass:=0; 源代码网推荐 Name:=edit1.Text; 源代码网推荐 long:=length(Name); 源代码网推荐 for i:=1 to Long do 源代码网推荐 begin 源代码网推荐 temp:=pchar(copy(Name,i,1)); 源代码网推荐 c:=temp^; 源代码网推荐 Pass:=Pass ord(c); //将用户名每个字符转换为ASCII码后相加. 源代码网推荐 end; 源代码网推荐 if StrToInt(Edit2.Text)=pass then 源代码网推荐 begin 源代码网推荐 Result:=True; 源代码网推荐 PName:=Name; 源代码网推荐 PPass:=Pass; 源代码网推荐 end 源代码网推荐 else Result:=False; 源代码网推荐 end; 源代码网推荐 procedure TForm1.Button1Click(Sender: TObject); 源代码网推荐 begin 源代码网推荐 if Check then CreateReg 源代码网推荐 else ShowMessage("注册码不正确,无法注册"); 源代码网推荐 end; 源代码网推荐 procedure TForm1.FormCreate(Sender: TObject); 源代码网推荐 begin 源代码网推荐 CheckReg; 源代码网推荐 end; 源代码网推荐 end. 源代码网推荐 <注册器> 源代码网推荐 在DELPHI下新建一工程,放置Edit1,Edit2,Button1组件.具体代码如下: 源代码网推荐 unit Unit1; 源代码网推荐 interface 源代码网推荐 uses 源代码网推荐 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 源代码网推荐 StdCtrls; 源代码网推荐 type 源代码网推荐 TForm1 = class(TForm) 源代码网推荐 Button1: TButton; 源代码网推荐 Edit1: TEdit; 源代码网推荐 Edit2: TEdit; 源代码网推荐 procedure Button1Click(Sender: TObject); 源代码网推荐 private 源代码网推荐 { Private declarations } 源代码网推荐 public 源代码网推荐 { Public declarations } 源代码网推荐 end; 源代码网推荐 var 源代码网推荐 Form1: TForm1; 源代码网推荐 implementation 源代码网推荐 {$R *.DFM} 源代码网推荐 procedure TForm1.Button1Click(Sender: TObject); 源代码网推荐 var 源代码网推荐 Temp:pchar; 源代码网推荐 Name:string; 源代码网推荐 c:char; 源代码网推荐 i,Long,Pass:integer; 源代码网推荐 begin 源代码网推荐 Pass:=0; 源代码网推荐 Name:=edit1.Text; 源代码网推荐 long:=length(Name); 源代码网推荐 for i:=1 to Long do 源代码网推荐 begin 源代码网推荐 temp:=pchar(copy(Name,i,1)); 源代码网推荐 c:=temp^; 源代码网推荐 Pass:=Pass ord(c); 源代码网推荐 end; 源代码网推荐 edit2.text:=IntToStr(pass); 源代码网推荐 end; 源代码网推荐 end. 源代码网推荐 从<注册器>中取得注册码,便可在<注册例程>中进行注册.原理是使用ORD函数取得用户名每单个字符的ASCII码值,并进行相加得到注册码. 源代码网推荐 当然,这十分容易并破解,你可以用XOR进行异或操作,或者倒取反值...具体的要看你怎么实现了.总之,本文章只抛砖引玉罢了. 源代码网推荐 源代码网供稿. |
