當你辛辛苦苦用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...