tempad
ReadyGo!技术成就梦想 >>数据库技术 >> 急!PB软件的使用期限设置!

急!PB软件的使用期限设置!

ReadyGo!技术成就梦想 网络搜索 efish 2008-1-13 8:41:23

急!PB软件的使用期限设置!

楼主yt9858(孤星剑)2003-12-30 21:13:58 在 PowerBuilder / 基础类 提问

我想在我的软件中加入一个时间限制,   如果不注册,过了规定的时间就不能使用。请问那位大虾能帮我解决这个问题? 问题点数:0、回复次数:14Top

1 楼CodeMagic(ErrorDetector)回复于 2003-12-30 21:24:31 得分 0

分三步:  
   
  1     建立一个名为Login_Date的表,表中含有两个均为日期类型的字段,字段名称分别为:First_Date和Last_Date。  
   
  2     建立一个名为Validate_Date的函数,参数为空,返回值为布尔型。为True表示没有超过时间限制,False表示超过时间限制.  
   
  Constant   Int   INTERVAL=20   //使用期限间隔  
  Int   Rec_Num  
  Date   d_First,d_Current,d_Last  
   
  d_Current=Today()  
   
  Select   Count()   Into   :Rec_Num   From   Login_Date;  
  If   Rec_Num=0   Then  
        Insert   Into   Login_Date   Values(:d_Current,:d_Current);  
        Return   True  
  End   If  
   
  Select   First_Date,Last_Date   Into   :d_First,:d_Last   From   Login_Date;  
  If   d_Current<d_Last   Then  
        MessageBox("Error","当前日期小于上次访问日期!")  
        Return   False  
  ElseIf   d_Current   -d_First>INTERVAL   Then  
        MessageBox("Error","超过使用期限!")  
        Return   False  
  Else  
        Update   Login_Date   Set   Last_Date=:d_Current;  
  End   If  
   
  Commit;  
  Return   True  
   
  3     在应用(Application)的Open事件中的Connect;语句后,加上下面这一句:  
   
  If   Not   Validate_Date()   Then   Return  
   
  这个行么?Top

2 楼qianduo(flyinsky)回复于 2003-12-31 08:41:24 得分 0

思路不错  
  应该可以吧Top

3 楼thelazyman(卧虎藏龙)回复于 2003-12-31 09:01:39 得分 0

在表中放字段开始使用日期、上次使用日期、使用次数等  
  然后在程序中判断使用天数或次数是否超过了限制天数、次数,如果没有超过,提示用户使用天数,更新使用日期、使用天数;否则,为到期了,退出程序!Top

4 楼powerdel()回复于 2003-12-31 10:30:31 得分 0

用户可以修改该表吗,如果可以就没有期限了,如果不可以,不可能吧。Top

5 楼fulongbiao(一个人的精彩)回复于 2003-12-31 10:57:14 得分 0

codemagic的已经能行了.Top

6 楼yt9858(孤星剑)回复于 2004-01-03 12:17:13 得分 0

codemagic的这个代码好象提示数据类型不致。ElseIf   d_Current   -d_First>INTERVAL   INTERVAL   THENTop

7 楼CodeMagic(ErrorDetector)回复于 2004-01-03 12:19:48 得分 0

有什么错误?Top

8 楼xzg8848(山不在高)回复于 2004-01-03 15:26:38 得分 0

把安装日期写进数据库或注册表都行,一定要加密!然后取工作日期和安装日期进行判断,过期了就halt!Top

9 楼flyerlxg(飞鸟)回复于 2004-01-03 16:45:58 得分 0

如果按照第一种做法,那么我通过更改系统时间那不就解决问题啦?第二种办法也同样可以通过更改时间来解决问题。我认为每次安装时通过读取文件分配表的头地址,然后通过读硬盘序列号等来解决"不能通过简单的安装来破解",这是安装的解决办法。或者在隐含扇区写入一些特定的标识来标志本电脑已经安装过此软件,不能再次安装,哪怕是通过format   c:后重装操作系统也不能,除非低格硬盘或者更换硬盘。更有效的是将信息写入CMOS中,让用户即使换硬盘也不能再次安装。  
  至于时间的问题,可以采取双重的办法进行解决,不但记录时间,而且还记录次数,比如这次的时间在上次的时间前,那肯定是用户更改了系统时间,您完全可以发出警告,当使用次数(比如规则30次或者30天)满了的时候,则需要进行注册啦!至于每次的登录情况记在哪里,您可得花点心思了,不要让用户查到时间的改变哟,不然还是有办法破解的。Top

10 楼flyerlxg(飞鸟)回复于 2004-01-03 16:46:31 得分 0

http://expert.csdn.net/Expert/topic/2621/2621523.xml?temp=2.460879E-02Top

11 楼l_s_d(螺丝钉)回复于 2004-01-04 11:25:25 得分 0

我学到了东西Top

12 楼hzroor(可乐阳光)回复于 2004-01-04 13:06:13 得分 0

飞鸟你太狠了吧!     -_-;  
   
  “或者在隐含扇区写入一些特定的标识来标志本电脑已经安装过此软件,不能再次安装,哪怕是通过format   c:后重装操作系统也不能,除非低格硬盘或者更换硬盘。更有效的是将信息写入CMOS中,让用户即使换硬盘也不能再次安装。”  
  Top

13 楼Awang_126(王小虎)回复于 2004-01-04 17:22:47 得分 0

学习Top

14 楼seaskycj(亦凡)回复于 2004-01-06 15:05:34 得分 0

gzingTop

责任编辑: efish 参与评论 查找更多:
相关文章
“疯狂宝马撞人案”法庭见闻

“疯狂宝马撞人案”法庭见闻

楼主TedZhou(Ted)2003-12-30 21:12:24 在 扩充话题 / 灌水乐园 提问

“疯狂宝马撞人案”法庭见闻   &nbs…

大家在培训之外还看些什么书?

大家在培训之外还看些什么书?

楼主jiangjiuh(木人)2003-12-30 21:12:17 在 软件培训/认证/考试 / 软件培训 提问

参加了ACCP培训后,感觉只…

有一个简单的Structs的问题<bean:write>

有一个简单的Structs的问题<bean:write>

楼主snowring(飘飘然)2003-12-30 21:10:48 在 Java / Web 开发 提问

本人刚学structs,写了一…

很简单的问题急送100 很简单的问题急送100
cookies问题 ASP.NET读ASP里的COOKISE,出现“未将对…

cookies问题 ASP.NET读ASP里的COOKISE,出现“未将对象引用设置到对象的实例”。

帮我决定以下用那种方式建立这个软件工程!

帮我决定以下用那种方式建立这个软件工程!

楼主lonelybug(孤独虫子)2003-12-30 21:09:53 在 软件工程/管理 / 开发方法版 提问

我想做一个图…

征婚榜 征婚榜
刚才遇到两个骗子

刚才遇到两个骗子

楼主hdyd()2003-12-30 21:07:12 在 扩充话题 / 程序人生 提问

刚才下班的时候,有两个人好像问路的样子,招呼我。

2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn

分类导航
ReadyGo!技术成就梦想