当前位置:甜馍馍地理信息网 >> 网站开发 >> 综合知识 >> 正文 >>  [阅读资讯:用VB实现软件试用期]

用VB实现软件试用期

[ 来源:Internet | 时间:2005年08月13日 | 收藏本文 ] 【

作者: 高勇

大家都知道,很多共享软件都有它们的试用期即给你一个固定的期限免费使用超出一定的期限如果你坚决拒付使用费的话,呵呵,那个软件就不能启动了,就是修改注册表或重新安装都没有用。你想不想也编个带试用期的程序呢?不难,方法如下:

    编程思路

应有的功能:

1.给定一个试用期限,在系统每次启动时会判断软件已经使用了几天,还有几天可用以及启动的次数。

2.当系统日期被修改成往日的日期后,系统能自动判别“禁止修改日期”不予正常启动。

3.当试用期到“显示信息”不予启动程序。

    大致算法

1.在系统第一次运行时,在一个隐蔽的地方(如“c :\windows\system”),建立一个用以记录系统信息的数据库文件,如date.mdb,使用一张表date,有三个字段first_time,last_time和times。其中first_time为系统第一次启动时的日期,即试用期的第一天。last_time为系统最近一次启动的时间,而times为记录系统启动的次数。

2.系统每次启动会检测当前的日期同last_time做比较,如果当前的日期(如2000/09/30)在last_time(如2000/10/01)之前,说明系统的日期被推后,显示信息,不予启动系统。反之,则转入第三步。

3.取出数据库中的first_time同当前的日期做减法运算,看所用的天数是否在使用期限内。如果在,则转入第四步“否则显示信息”不予启动系统。

4.修改数据库的last_time字段为当前的日期,显示系统已经使用的情况,正常启动系统。

好了,只要大家把date.mdb藏好了,不被发现就万事大吉了。而且你可以给这个数据库加上密码,然后把first_time、last_time、times的字段名改个面目全非,就算有高手发现了数据库,破解了密码,他也不知道这个数据库是哪个软件所带的文件。

    程序源码

在你的工程中,请以SUB main()启动程序。

Sub main()

On Error GoTo error

'系统检测是否有date.mdb文件,如果没有,则是系统第一次启动,则建立之

If Dir(""c:\windows\system\date.mdb"")=""""Then

'注意在开始:你要确定工程引用了Microsoft  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=andy""

Set TD = DB.CreateTableDef(""date"")

TD.Attributes = 0

TD.Connect =""""

TD.SourceTableName = """"

TD.ValidationRule = """"

TD.ValidationText = """"

' Field 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

' Field last_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

' Field times

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 '系统有date.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 =""springlover"")    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(""first_time"")) &""天的试用期,祝你今天工作愉快!"",48,""天华电脑艺术创意工作室""

mainForm.Show '启动你的主窗体

End If

End If

Exit Sub

error

MsgBox ""系统错误!""

End Sub

好了,终于编写完了我们带试用期的软件,一般的高手会想到到注册表去修改或是恢复最初的注册表,但这都是无济于事的。而且这种方法还有一个重要的特点就是只能安装本系统一次,因为当卸载了原来的程序,想重新安装的时候,因为date.mdb仍然存在所以就真正地控制了只能安装一次,使用30天的期限,是不是比Dreamweaver还要酷。如果想重新安装,只要附加一个小程序,删除那个数据库文件即可。如果你使用这种方法,再结合注册表,我想效果一定更佳,等你有了更好更妙的方法别忘了写信告诉我。

【推荐本文】 【打印本页】 【返回顶部

>> 相关文章:

● 上一篇文章:用VB6创建MTS组件
● 下一篇文章:主页制作四技巧
最新文章
推荐文章