王朝网络
分享
 
 
 

巧用VB数据库,编写软件试用期

王朝vb·作者佚名  2006-01-09
宽屏版  字体: |||超大  

现在是网络时代了,相信有许多的网虫们必和我一样,经常的遨游于网络之中,时常还贪一些小便宜,DOWN一些免费实用的好东东下来,尽情的享受网络带给我们的免费快餐.然而美中不足的是,有些软件,说是免费的,其实都有他们的试用期,即给你一个固定的期限免费使用,一旦超出一定的期限如果你坚决拒付使用费的话,呵呵,那个软件就不能启动了.无疑,这是那些软件推销

商们的一种促销的手法而已.一般的人都只能望之而兴叹,而有写小聪明的人,会试着修改系统的日期或是注册表,企图缩短已使用的时间.呵呵,就象我,谁知道天外有天,软件开发商们早知道你有这招,当你修改了日期后,软件通常可以检测出来,通知你不可以修改系统日期,否则不能正常使用.如大名鼎鼎的DREAMWAVER,有些小聪明的我(其实笨的很了)也不得不翘起大拇指,说:"高,实在是高!"所以一旦到了软件的试用期,再好的东东也不得不舍弃了,或是重新DOWN一个下来.(有时再DOWN也不可用)知道了这,你难道不想也来个"试用期"装点一下我们自己开发的程

序?也让别人向我们翘一下大拇指?什么,太难?不难不难,我,呵呵,已经闭门修炼了几日,终于研究成功了不修改注册表,巧用VB数据库,编写软件使用期的方法.

好了,不卖关子了,就开始我的心得大法吧,不过首先,还是先讲讲我的思路:

A: 应有的功能:

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

2) 当系统日期被修改成往日的日期后,系统能自动判别,禁止修改日期,不于正常启动.

3) 当试用期到,显示信息,不于启动程序.B:简单的思路

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

2) 系统每次启动会检测当前的日期同last_time做比较,如果当前的日期(如00/09/30)比last_time(如00/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, "天华电脑艺术创意工作室"

'效果如图1 (见附件1)

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, "天华电脑艺术创意工作室"

'效果如图3 (见附件3)

End

End If

'开始检测是否超期

If Date - rd2.Fields("first_time") >= 30 Then '设定试用期为30天

MsgBox "您已经启动本系统" & rd2.Fields("times") & "次了,而且已经到了30天的试用期,如果您想继续使用本软件,请您到本公司注册并购买正版的软件!", 48, "天华电脑艺术创意工作室"

'效果如图4 (见附件4)

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, "天华电脑艺术创意工作室"

'效果如图2 (见附件2)

mainForm.Show '启动您的主窗体

End If

End If

Exit Sub

error:

MsgBox "系统错误!"

End Sub

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有