如何做到一個軟件的試用期

大家都知道,很多共享軟件都有它們的試用期 即給你一個固定的期限**使用 超出一定的期限如果你堅決拒付使用費的話,呵呵,那個軟件就不能啓動了,就是修改註冊表或重新安裝都沒有用。你想不想也編個帶試用期的程序呢?不難,方法如下:
  #1 編程思路
   應有的功能:
   1.給定一個試用期限,在系統每次啓動時會判斷軟件已經使用了幾天,還有幾天可用以及啓動的次數。
   2.當系統日期被修改成往日的日期後,系統能自動判別“禁止修改日期”不予正常啓動。
   3.當試用期到“顯示信息”不予啓動程序。
  #1 大致算法
   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的字段名改個面目全非,就算有高手發現了數據庫,破解了密碼,他也不知道這個數據庫是哪個軟件所帶的文件。
  #1 程序源碼
   在你的工程中,請以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  

 

 

http://hi.baidu.com/winnower_007/item/2af1fc860e595329110ef38f

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章