日期:2014-05-18  浏览次数:20744 次

一个关于软件使用期限的问题
假设。一个软件,客户只能试用3天。该如何判断?

获取没有网络的。
本地时间?若修改本地时间怎么办
要是 用户刷小聪明,修改本地时间怎么办?
timer算?太废资源了吧。。。
累积到 24*3*60*60、、、、
考虑到用户的电脑性能问题,主要是 这个项目 就有点大,。所以要一点一点的省资源。。

开启软件,timer就自己一秒一秒的增加、。。。
一秒一记录吗(Update数据库)?资源加大。不可以。若存在一个文件里,文件被恶意删除,也不可以。

考虑到用户可能恶意结束软件的进程,所以,不可以关闭的时候再记录使用时间,而是,从软件开启,就开始计时



------解决方案--------------------
第一次使用软件的时候,获取当前时间,分别写入数据库和注册表。在写一个windows 服务。在第一次开启软件的时候,服务也开启。抓去第一次开始用软件的时间。在windows服务里做模拟时间操作。
下次在打开软件的时候就用写入注册表的时间来和windows服务里模拟的时间做比较。是否超过3天。完全不用考虑是否会修改系统时间。(第一次获取系统时间。只是要获取一个起始点,任何时间都可以。然后时间的计算由windows服务来计算。)