?? unitfrmmain.pas
字號(hào):
unit unitFrmMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, registry;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
re_id: integer;
registertemp: tregistry;
inputstr, get_id: string;
dy, clickedok: boolean;
begin
dy := false; //軟件是否已到注冊(cè)期、及是否允許繼續(xù)使用的標(biāo)志,當(dāng)值為false是為允許使用。
registertemp := tregistry.create; //準(zhǔn)備使用注冊(cè)表
with registertemp do
begin
rootkey := hkey_local_machine; //存放在此根下
if openkey('software\microsoft\windows\currentversion\mark', true) then
// 建一目錄,存放標(biāo)志值。當(dāng)然也可以存放在已存在的目錄下。怎么樣,很難發(fā)現(xiàn)吧?
begin
if valueexists('gc_id') then begin //用gc_id的值作為標(biāo)志,首先判斷其存在否?
re_id := readinteger('gc_id'); //讀出標(biāo)志值
if (re_id <> 0) and (re_id <> 100) then begin //若標(biāo)志值為0,則說(shuō)明已注冊(cè)。
//若不為0且值不到100,說(shuō)明雖未注冊(cè),但允許使用的次數(shù)尚未達(dá)到。
re_id := re_id + 5; //允許標(biāo)志的最大值為100,每次加5,則最多只可用20次。
writeinteger('gc_id', re_id); //將更新后的標(biāo)志值寫(xiě)入注冊(cè)表中。
end;
if re_id = 100 then dy := true; //假如值已到100,則應(yīng)注冊(cè)。
end
else writeinteger('gc_id', 5); //建立標(biāo)志,并置初始標(biāo)志值。
end;
if dy then begin //若dy值為true,則應(yīng)提示用戶輸入注冊(cè)碼,進(jìn)行注冊(cè)。
clickedok := inputquery('您使用的是非注冊(cè)軟件,請(qǐng)輸入注冊(cè)碼:', ' ', inputstr);
if clickedok then begin
get_id := inttostr(111111 * 2); //注冊(cè)碼為222222,當(dāng)然可加入更雜的算法。
if get_id = inputstr then begin
writeinteger('gc_id', 0); //若輸入的注冊(cè)碼正確,則將標(biāo)志值置為0,即已注冊(cè)。
closekey;
free;
end
else begin //若輸入的注冊(cè)碼錯(cuò)誤,應(yīng)作出提示并拒絕讓其繼續(xù)使用
application.messagebox('注冊(cè)碼錯(cuò)誤!請(qǐng)與作者聯(lián)系!', '系統(tǒng)提示', mb_ok);
closekey;
free;
application.terminate; //中止程序運(yùn)行,拒絕讓其繼續(xù)使用
end;
end
else begin //若用戶不輸入注冊(cè)碼,也應(yīng)作出提示并拒絕讓其繼續(xù)使用
application.messagebox('請(qǐng)與作者聯(lián)系,使用注冊(cè)軟件!', '警告框', mb_ok);
closekey;
free;
application.terminate;
end;
end;
end;
end;
end.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -