unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
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,clickdok:boolean; begin dy:=false;//软件是否注册的标志,FALSE的时候可以继续使用 registertemp:=tregistry.create;//准备使用注册表。 with regietertemp do begin rootkey:=hkey_local_machine;//存放在此根下 if openkey('software\microsoft\windows\currentversion\mark',true) then //建一目录,存放标志值,当然也可以存放在已经存在的目录下 begin if valueexist('gc_id') then //用GC-ID做标志值 begin re_id:=readinteger('gc_id');//读出标志值 if(re_id<>0)and(re_id<>100)then//为0则已经注册 begin re_id:=re_id+5;//100内每次加5,最多用20次 writeinteger('gc_id',re_id);//写入新数据 end; if re_id=100 then dy:=true;//到100,则应该注册。 end; else writeinteger('gc_id',5);//建立标志,并赋初值 end; if dy then//DY为TRUE,应该进行注册 begin clickdok:=inputquery('还没注册,请进行注册;','',inputstr); if clickdok then begin get_id:=inttostr(111*2);//注册码为222 if get_id=inputstr then begin writeinteger('gc_id',0);//注册码正确,置0,已经注册。 closekey; free; end; else begin//注册码错误,应该提示并拒绝使用软件 application.MessageBox('注册码错误!','系统提示',mb_ok); closekey; free; application.Terminate;//终止程序运行 end; end; else begin//若不注册,也可以关闭软件 application.MessageBox('请与作者联系,使用注册软件!','警告框',mb_ok); closekey; free; application.Terminate; end; end; end; end;
end. 谁能帮我改一下,然后再家个难点的算法,至于回报可以商量,请会的人一定要帮我,很急!
[此贴子已经被静夜思于2005-5-24 18:09:08编辑过]