乙個簡單的DELPHI程式註冊碼設計

2021-07-30 18:57:28 字數 3625 閱讀 5334

當你辛辛苦苦用delphi做好了乙個你認為十分不錯的程式,你是否想把它發布出去成為共享軟體呢  做為乙個共享軟體,註冊碼肯定是少不了的,你可以通過判斷程式是否註冊來進行功能,時間或一些其它限制.現在就介紹一種簡單的註冊碼製造方法.思路是這樣的:程式執行時先檢測登錄檔,如果找到註冊項,則表明已經註冊,如果沒有找到註冊項,則提示要求註冊. 

《註冊例程》

在delphi下新建一工程,放置edit1,edit2,label1,label2,button1元件.具體**如下:

unit unit1;

inte***ce

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();

public

end;

varform1: tform1;

pname:string; //全域性變數,存放使用者名稱和註冊碼.

ppass:integer;

implementation

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;

endelse form1.caption:='軟體未註冊,請註冊';

end;

function tform1.check():boolean;//檢查註冊碼是否正確.

vartemp: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;

endelse 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;

inte***ce

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

public

end;

varform1: tform1;

implementation

procedure tform1.button1click(sender: tobject);

vartemp: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進行異或操作,或者倒取反值...具體的要看你怎麼實現了.總之,本文章只拋磚引玉罷了.

乙個簡單的註冊 登入程式

乙個簡單的註冊。登入程式。已實現反射,使用者只需要輸入數字即可選擇功能。可保留註冊資訊。定義了乙個只有退出功能的函式。class user def init self,name,pwd self.name name self.pwd pwd class authentic def init self...

乙個簡單的verlig程式 乙個簡單C程式的介紹

我們前面學了c語言的一些理論知識,今天通過乙個簡單的程式先來看一看c語言程式是什麼樣子。然後再對程式中的 進行介紹。這個語句的功能是進行有關的預處理操作。include稱為檔案包含命令,後面尖括號的內容稱為標頭檔案或首檔案。此處指包含stdio.h系統標頭檔案,在下面主函式中使用的printf 函式...

第乙個delphi程式

unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,stdctrls var flag integer var n1 cardinal type tfor...