把应用加上30天的试用期。
unit regApp;
interface
uses Windows,SysUtils,Registry,forms, Dialogs;
type
Tlogin = class
private
public
constructor Create; virtual;
procedure CheckLogin;
end;
implementation
constructor Tlogin.Create;
begin
inherited Create;
end;
procedure Tlogin.CheckLogin;
var
Reg_id: TDateTime;
RegisterTemp: TRegistry;
InputStr, Get_id: string;
Reg_tag, ClickDok: Boolean;
Allow: Integer;
begin
Allow := 30; //试用期为30天
Reg_tag := False; //软件是否到注册期
registerTemp := TRegistry.Create; //准备使用注册表
with registerTemp do
begin
RootKey := HKEY_LOCAL_MACHINE; //存放
if OpenKey('Software\Microsoft\Windows\CurrentSowft\tag', True) then // 建一目录,存放标志值
begin
if ValueExists('DateTag') then begin //用DateTag的值作为标志
Reg_id := ReadDate('DateTag'); //读出标志值
if (Reg_id <> 0) and (Now - Reg_id > Allow) then //允许使用的时间到
Reg_tag := True;
end
else
WriteDateTime('DateTag', Now); //建立标志,并置初始标志值。
end;
if Reg_tag then begin //要求用户输入注册码
ClickDok := InputQuery('您使用的是非注册软件,请输入注册码:', ' ', inputstr);
if ClickDok then begin
Get_id := IntToStr(2222); //注册码2
if Get_id = InputStr then begin
WriteDateTime('DateTag', 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.
我找来以上代码也想给我的应用加上30天试用期,但不知道怎么用,把这段代码保存成什么文件,文件名,应用怎么调用,请各位指教!
问题点数:20、回复次数:11Top
1 楼zds0707(周)回复于 2001-09-18 10:14:13 得分 4
这是一个写注册表来注册的程序,
运行: regedit
在 HKEY_LOCAL_MACHINE 下
Software\Microsoft\Windows\CurrentSowft\tag
的 键 值
Top
2 楼pathe(睡斛)回复于 2001-09-18 10:17:14 得分 2
直接写到你的工程文件中,主form创建前,
如果成功则正常执行程序,否则退出.
当然了这样做并不保险,你最好在加一个次数的限制!
但其实写注册表是没太大用处的,蒙蒙罢了!
Top
3 楼pathe(睡斛)回复于 2001-09-18 10:18:59 得分 2
就象一般的单元一样用!Top
4 楼swazn_yj(菩提本无树)回复于 2001-09-18 10:21:09 得分 0
我用的是win2000server,根本没有Software\Microsoft\Windows\CurrentSowft\tag
键值!我想知道的是怎么把这段代码加入我的应用???Top
5 楼pandazy(小熊)回复于 2001-09-18 10:25:58 得分 2
可以写一个动态连接库,在你的应用程序的主窗口开始之前调用动态连接库
动态连接库的返回值就是注册是否成功的信息Top
6 楼swazn_yj(菩提本无树)回复于 2001-09-18 10:31:10 得分 0
老兄:
我刚学delphi不久,不要搞的太神秘,来点简单的,就告诉我具体怎么做,比如:
第一步:
打开应用:新建个form,然后拷贝这段代码过来,保存成名字为____的文件,
然后把这个form加入应用,等等......
第二步:
.........
就这样我才能理解,OK?Top
7 楼pandazy(小熊)回复于 2001-09-18 10:40:41 得分 2
哈,也可以在MainForm的FormShow 里直接写一个函数判断嘛
这个方法最简单也最有效
Top
8 楼sanjianxia(三剑侠)回复于 2001-09-18 10:49:15 得分 2
写简单一点吧!用程序记忆两个时间,看当前时间和前一次时间是否增加,增加多少天,然后和第一次记忆时间相差<=30就可以了.Top
9 楼herro123(螃蟹不走路)回复于 2001-09-18 14:00:17 得分 4
那段代码好像是一个简单的组件,可以把他存成pas文件,用Component->InstallPackage把它
注册成为一个组件。然后在自己的程序中:
uses XXX ; //XXX是自己取的组件名
var
MyLogin: TLogin;
procedure XX.FormShow();
begin
MyLogin:= TLogin.Create; //哎呀,忘了说啦,Create是要自己重载的,加入自己的信息
MyLogin.CheckLogin;
end;
//还要重载构造函数,太麻烦了。不过搞好了就可以反复使用了。
Top
10 楼Caty(双鱼)回复于 2001-09-18 18:37:19 得分 2
使用Asprotect1.1软件保护程序!很好用,自动为你生成试用期和试用次数的控制!
Top
11 楼tide_liu(龙飞九天)回复于 2001-09-18 18:57:20 得分 0
gzTop




