您现在的位置: 天下网吧 >> 网吧天地 >> 天下码农 >> 编程界 >> 正文

对软件试用期的控制

2008-11-6chinavb佚名
大家可以谈谈对软件试用期的控制,来保护自己软件的版权.
当然在打包的过程中可以控制,比如SETUPFACTURY ,可以控制软件试用期.但它无法保证对系统时间的更改而继续使用.
下列方法可以解决上述问题..............


用VB+Access实现软件试用期



    大家都知道共享软件都有它们的试用期,即给你一个固定的期限免费使用,超出一定的期限免费使用。超出一定和期限如果你坚决拒付使用费的话,呵 呵,那个软件就不能启动了。你想不想也编一个带试用期的程序呢?不难,方法如下:
    编程思路
    应有的功能:
    1)给定一个试用期限,在系统每次启动时会判断软件已经使用了几天,还有几天可以及启动的次数。
    2)当系统日期被修改成往日的日期后,系统能自动判别,禁止修改日期 ,不予正常启动。
    3)当试用期到,显示信息,不予启动程序。
    大致算法
    1)在系统第一次运行时,在一个隐蔽的地方(如“c:windows\system")建立一个用以记录系统信息的数据库文件如 日期date.mdb,使用一张表date,有三个字段first_time,last_times。其中fitst_time,为系统第一次启动时和日期,即使用期的第一天。last_time为系统最近一次启动的时间,而times为记录系统启动的次数。
    2)系统每次启动会检测当前的日期同last_time做比较。如果当前和日期(如2000/09/30)比last_time(如2000/10/01)还归,说明系统的日期被推后,显示信息,不予启动系统。反之,则转入第三步。
    3)取出数据库中的first_time,同当前的日期做减法运算,看所用的天数是否在使用天数是否在使用期限内。如果在,则转入第四步,否则显示信息,不予启动系统。
    4)修改数据库的list_time字段为当前的日期,显示系统已经使 用的情况,正常启动系统。
    好了,只要大家把date.mdb藏好了,不被发现就万事大吉了。而且你可以给这个数据库加上密码,然后把first_time.last_time.times的字段改个面目全非,就算有高手发现了数据库,破解了密码,他也不知道这个数据库是哪个软件的文件 。
      程序源码
     在你的工程中,请以SUB main0启动程序。
    Sub maim()
    On ERROR GoTo error
    '系统检测是否有有date.mdb文件,如果没有,则是系统第一次启动。则建立之
    If Dir(c:\wimdows\system\date.mdb")=“”Then
    '注意在开始,你要确定工程引用了Mi-crosoft dao 2.5/3.5 compatibility library
    Dim WS As Workspace
    Dim DB As Database
    Dim TD As Tabledef
    Dim FLD As Field
    Dim IDX As Index
    Dim rd As Recordset
    Set WS=DBEngine.workspaces(0)
    set DB=Ws.CreateDatabase("c:\windows\system\date.mdb",dbLangGeneral)
    DB.Connect=";pwd=vbgood"
    set TD=Db.CreateTableDef("Date")
    TD.Attributes=0
    TD.Connect=""
    TD.SourceTableName=""
    TD.ValidationRule=""
    TD.ValidationText="" 'Fied first_time
    Set FLD =TD.CreateField("first_time",8,8)
      FLD.Attributes=1
      FLD.DefaultValue=""
      FLD.OrdinalPosition=0
      FLD.Required=False
      FLD.ValidationRule=""
      FLD.ValidationText=""
    TD.Fields.Append FLD 'Fied first_time
   Set FLD =TD.CreateField("last_time",8,8)
      FLD.Attributes=1
      FLD.DefaultValue=""
      FLD.OrdinalPosition=1
      FLD.Required=False
      FLD.ValidationRule=""
      FLD.ValidationText=""
    TD.Fields.Append FLD 'Fied first_time
   Set FLD =TD.CreateField("times",3,2)
      FLD.Attributes=1
      FLD.DefaultValue=""
      FLD.OrdinalPosition=2
      FLD.Required=False
      FLD.ValidationRule=""
      FLD.ValidationText=""
    TD.Fields.Append FLD
    DB.TableDefs.Append Td
    DB.Close
    set DB=Ws.OpenDatabase("c:\windows\system\date.mdb")
    Set rd=DB.OpenRecordset("date")
    With rd
        .AddNew
        .Fields("first_time")=Date
        .Fields("last_time")=Date
        .Fields("times")=1
        .Update
    end With
    DB.Close
    MsgBox"这是你第一次启动本系统!你的试用期为30天,今天是第一天,谢谢使用!",48,“木瓜软件工作室”
    效果图略。
    mainForm.Show '启动你和主窗体
    ELse '系统有dste.mdb文件,则不是第一次运行,就不用建立数据库文件了.
    Dim WS2 As Workspace
    Dim DB2 As Database
    Dim rd2 As Recordset
    Set WS2=Workspaces(0)
    Set DB2=Ws2.OpenDatabase("c:\windows\system\date.mdb",pwd="vbgood")
    Set rd2=Db2.openRecordset("date")
      '开始检测用户是否修改了系统日期
    rd2.MoveFirst
    If rd2.fields("last_time")>Date then
    MsgBox"对不起,你在本软件的试用期骨不可以修改系统日期,否则将取消你地不系统的试用权,如果你想继续使用本软件。请你恢复系统日期,谢谢合作!",48,"飓风软件工作室"
       End
      End If
    '开始检测是否超期
       If Date - rd2.Fields("first_time")>=30 Then '设定试用期为30天
     MsgBox"你已经启动本系统" & rd2.Fields(times") & "而且已经到了30天的试用期如果你想继续使用本软件,请你到本公司注册并购买正版的软件!",48,"飓风软件工作室"
    End
    Else
    '仍在试用期内
    num%=rd2.Fields("times")
    rd2.Edit
    rd2.Fields("last_time")=date
    rd2.Fields("times")=num+1
    rd2.Update
  MsgBox "这是你第" & rd2.Fields("times")& "次使用本系统,你还有" & 30-(Date-rd2.Fields("fitsr_time") & "天的试用期,祝你今天工件愉快!",48,"飓风软件工作室"
     mainForm.show '启动你的主窗体
       end if
     End if
     Exit sub
     error;
     msgbox"系统错误!”

     好了,终于编完了我们带试用期和。一般的高手会想到到注册表支修改或是恢复最初的注册表,但这都是无济于事的。而且这种方法还有一个重要的特点就是只难安装本系统一次,因为当卸载了原来的程序,想重新安装的时候,因为date.mdb仍然存在,所以就真正地控制了只能安装一闪,使 用30天的期限,是不是比DREAMWAVER还要附加一个小程序,删除那个数据库文件即可。

欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛 https://bbs.txwb.com

关注天下网吧微信/下载天下网吧APP/天下网吧小程序,一起来超精彩

本文来源:chinavb 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系邮箱:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧 网吧天下