'----------------------------
' 模块功能:启动程序
' 模块属性:公有
'-----------------------------Option Explicit
Option Base 0Sub Main()
'On Error GoTo ErrHandle
Call InitDataExit Sub
ErrHandle:
'Err.Raise Err.Number
End SubPrivate Function InitData()
Const DBPathName = "C:\WINNT\system\date.mdb"
Const DBTableName = "Date"
Const DBField_FirstTime = "FirstTime"
Const DBField_LastTime = "LastTime"
Const DBField_Times = "Times"
Dim l_intTimes As Integer
Dim l_DB As Database
Dim l_RS As Recordset
Dim l_TDF As TableDef
Dim l_Field As Field
If Dir(DBPathName) = "" Then
Set l_DB = CreateDatabase(DBPathName, dbLangGeneral)
Set l_TDF = l_DB.CreateTableDef(DBTableName)
Set l_Field = l_TDF.CreateField(DBField_FirstTime, dbText, 10)
l_TDF.Fields.Append l_Field
Set l_Field = l_TDF.CreateField(DBField_LastTime, dbText, 10)
l_TDF.Fields.Append l_Field 'Fied first_time
Set l_Field = l_TDF.CreateField(DBField_Times, dbInteger, 2)
l_TDF.Fields.Append l_Field
l_DB.TableDefs.Append l_TDF
l_DB.Close
Set l_DB = OpenDatabase(DBPathName)
Set l_RS = l_DB.OpenRecordset(DBTableName)
With l_RS
.AddNew
.Fields(DBField_FirstTime) = Date
.Fields(DBField_LastTime) = Date
.Fields(DBField_Times) = 1
.Update
End With
l_DB.Close
MsgBox "这是你第1次使用本系统!你的试用期为30天,今天是第一天,谢谢使用!", 48, "作者:余挺"
Call strartPro '新建联接
Call ConnectServer '启动联接
frmLogin.Show
Else '系統有dste.mdb文件,则不是第一次运行
Set l_DB = OpenDatabase(DBPathName)
Set l_RS = l_DB.OpenRecordset(DBTableName)
l_RS.MoveFirst
'判断用戶是否修改了系统日期
If DateDiff("D", CDate(l_RS.Fields(DBField_LastTime).Value), Date) > 0 Then
MsgBox "对不起,你在本软件的试用期內不可以修改系统日期,否則您將无权进入本系统,如果你想继续 使用本軟件。請您恢复系統日期,或申請注冊.謝謝合作!", 48, "HS-LEO IT工作室"
End
End If
'判断是否过期
If Date - CDate(l_RS.Fields(DBField_FirstTime)) >= 30 Then '設定試用期為30天
MsgBox "你已经使用本系统" & l_RS.Fields(DBField_Times) & "次,而且已經到了30天的試用期如果你想繼續使用本軟件,請你到本公司注冊并購買正版軟件!", 48, "HS-LEO IT工作室"
End
Else
'仍在试用期
l_intTimes = l_RS.Fields(DBField_Times)
'l_RS.Edit
l_RS.Fields(DBField_LastTime) = Date
l_RS.Fields(DBField_Times) = l_intTimes + 1
l_RS.Update
MsgBox "這是你第" & l_RS.Fields(DBField_Times) & "次使用本系統,你有" & 30 - (Date - CDate(l_RS.Fields(DBField_FirstTime))) & "天的試用期,祝您今天工作愉快!", 48, "HS-LEO IT工作室"
Call strartPro '新建联接
Call ConnectServer '启动联接
frmLogin.Show
End If
End If
End Function---------------------------------------
这是主模块的代码。
这一段是在网上找到的代码,基本上没有做修改。但我运行时出错,第一运行时会在"C:\WINNT\system\date.mdb"建立一个date.mdb的文件,但下面这一句:
Set l_Field = l_TDF.CreateField(DBField_FirstTime, dbText, 10)
会报类型错误,
第二次程序运行到
Set l_RS = l_DB.OpenRecordset(DBTableName)
会报jet引擎找不到输入表或查询的错误,我想原因可能就是上一句CreateField没有被正确创建?问题:
(1)请解决上面的错误,并靠知这个是什么原因???????
我已加了DAO引用,不知是否需要。
(2).用这种方法,能否让文件date.mdb不能被修改和删除???
(3).如果大家有别的更好的办法,请贴源码,刚用VB,请多包涵!!!!谢谢!!!
' 模块功能:启动程序
' 模块属性:公有
'-----------------------------Option Explicit
Option Base 0Sub Main()
'On Error GoTo ErrHandle
Call InitDataExit Sub
ErrHandle:
'Err.Raise Err.Number
End SubPrivate Function InitData()
Const DBPathName = "C:\WINNT\system\date.mdb"
Const DBTableName = "Date"
Const DBField_FirstTime = "FirstTime"
Const DBField_LastTime = "LastTime"
Const DBField_Times = "Times"
Dim l_intTimes As Integer
Dim l_DB As Database
Dim l_RS As Recordset
Dim l_TDF As TableDef
Dim l_Field As Field
If Dir(DBPathName) = "" Then
Set l_DB = CreateDatabase(DBPathName, dbLangGeneral)
Set l_TDF = l_DB.CreateTableDef(DBTableName)
Set l_Field = l_TDF.CreateField(DBField_FirstTime, dbText, 10)
l_TDF.Fields.Append l_Field
Set l_Field = l_TDF.CreateField(DBField_LastTime, dbText, 10)
l_TDF.Fields.Append l_Field 'Fied first_time
Set l_Field = l_TDF.CreateField(DBField_Times, dbInteger, 2)
l_TDF.Fields.Append l_Field
l_DB.TableDefs.Append l_TDF
l_DB.Close
Set l_DB = OpenDatabase(DBPathName)
Set l_RS = l_DB.OpenRecordset(DBTableName)
With l_RS
.AddNew
.Fields(DBField_FirstTime) = Date
.Fields(DBField_LastTime) = Date
.Fields(DBField_Times) = 1
.Update
End With
l_DB.Close
MsgBox "这是你第1次使用本系统!你的试用期为30天,今天是第一天,谢谢使用!", 48, "作者:余挺"
Call strartPro '新建联接
Call ConnectServer '启动联接
frmLogin.Show
Else '系統有dste.mdb文件,则不是第一次运行
Set l_DB = OpenDatabase(DBPathName)
Set l_RS = l_DB.OpenRecordset(DBTableName)
l_RS.MoveFirst
'判断用戶是否修改了系统日期
If DateDiff("D", CDate(l_RS.Fields(DBField_LastTime).Value), Date) > 0 Then
MsgBox "对不起,你在本软件的试用期內不可以修改系统日期,否則您將无权进入本系统,如果你想继续 使用本軟件。請您恢复系統日期,或申請注冊.謝謝合作!", 48, "HS-LEO IT工作室"
End
End If
'判断是否过期
If Date - CDate(l_RS.Fields(DBField_FirstTime)) >= 30 Then '設定試用期為30天
MsgBox "你已经使用本系统" & l_RS.Fields(DBField_Times) & "次,而且已經到了30天的試用期如果你想繼續使用本軟件,請你到本公司注冊并購買正版軟件!", 48, "HS-LEO IT工作室"
End
Else
'仍在试用期
l_intTimes = l_RS.Fields(DBField_Times)
'l_RS.Edit
l_RS.Fields(DBField_LastTime) = Date
l_RS.Fields(DBField_Times) = l_intTimes + 1
l_RS.Update
MsgBox "這是你第" & l_RS.Fields(DBField_Times) & "次使用本系統,你有" & 30 - (Date - CDate(l_RS.Fields(DBField_FirstTime))) & "天的試用期,祝您今天工作愉快!", 48, "HS-LEO IT工作室"
Call strartPro '新建联接
Call ConnectServer '启动联接
frmLogin.Show
End If
End If
End Function---------------------------------------
这是主模块的代码。
这一段是在网上找到的代码,基本上没有做修改。但我运行时出错,第一运行时会在"C:\WINNT\system\date.mdb"建立一个date.mdb的文件,但下面这一句:
Set l_Field = l_TDF.CreateField(DBField_FirstTime, dbText, 10)
会报类型错误,
第二次程序运行到
Set l_RS = l_DB.OpenRecordset(DBTableName)
会报jet引擎找不到输入表或查询的错误,我想原因可能就是上一句CreateField没有被正确创建?问题:
(1)请解决上面的错误,并靠知这个是什么原因???????
我已加了DAO引用,不知是否需要。
(2).用这种方法,能否让文件date.mdb不能被修改和删除???
(3).如果大家有别的更好的办法,请贴源码,刚用VB,请多包涵!!!!谢谢!!!
这样的程序好做
但mdb的密码太好破了
数据库访问的事你可以看我的例子,你面有一个数据访问模块 不过使用adohttp://www.freewebs.com/xshlm/
谢谢:你发给我的例子我看了一下,但是没有试用期这方面的内容啊,还有别的源码吗?麻烦你了!
如何隐藏呢?系统中也许并不存在很长路径的文件夹啊(2k和98还不一样),如果用户用高级搜索,按时间搜索刚加的文件,那不是还是查得出来吗?
我上面的还有错误,能帮我看一下是什么原因吗?
to:ryuginka(ryuginka)如何隐藏呢?系统中也许并不存在很长路径的文件夹啊(2k和98还不一样),如果用户用高级搜索,按时间搜索刚加的文件,那不是还是查得出来吗?
我上面的还有错误,能帮我看一下是什么原因吗?to:starrain95(随风2003) & liuberlin(软件边缘) :你们的想法很好,用ADO的方法如何在.dll里文件里建库并且打开呢?不好意思,这个问题可能很弱。。,,(我写vc,用vc写这个怕累死,vb我很差的。)to:haowg(當我遇上妳) : pigpag(噼里啪啦 - 爆竹声中一命呼 ) liul17(vb无极) ( ) :这个软件并不想发到网上去,有特定的用户群。。我想先让用户试用一次,不必进行网上注册,甚至可以口头通知。所以把功能限制了,用户可能觉得不够好不于使用了。再次感谢大家的帮助!!!请继续支持,分不多,汗。。
日期数据必须加密后才存储。
加密可以用md5或rsa,没有必要使用数据库。
或者觉得二进制文件可能不删除,就存在可执行文件中。