作者:Sunpursue()

原文地址:http://community.csdn.net/Expert/topic/4225/4225754.xml?temp=.4353754

以下的方法仅提供一种思路:

1.首次运行判断

安装后用户需要运行程序,进行判断是否是首次运行程序
 需要存储一个变量  BlnIsFirstRun(该变量写在某地方初值为 true ,可以多写几个 )
 如果是首次运行程序,
 
 写入软件相关信息 如 SetupDate 安装日期( 代表首次运行日期 )同时获取系统的昨天(sYesterday)的时间记录下来
 写入软件过期的日期  ExpairDate : 安装日期 + 使用期( 比如15 ) = 过期日期
 
 如果不是是首次运行程序,
 读取系统昨天的日期, 和 sYesterday 进行比较 判断时期是否连续(防止修改系统时间)
 
 如果连续 采用读取的系统时间刷新 sYesterday 的值 ,使日期向前推进一天 ;
 如果不连续连续,采用读取的 sYesterday 的值,使之自增一天,获得新的 sYesterday 值 进行回填 ,刷新 sYesterday 的值 ,使日期向前推进一天 ;
 
2.判断是否过期
读取 ExpairDate 的值 ,获取系统当天的值和所记录的 sYesterday 的值进行连续性比较 ,不连续,将 sYesterday 增加一天,认为是当天的日期值
然后和 ExpairDate 的值 进行判断;

3.程序每次启动进行判断,更新相关的信息;

4.注意:
 
  其中几个关键的值如 BlnIsFirstRun , SetupDate ,sYesterday ,ExpairDate  需要多写几个地方,尽可能进行加密处理
  过期日期判断时采用
  CurrentDate >= ExpairDate
  而不是
  CurrentDate == ExpairDate(显然有漏洞)

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐