為了防止日期出錯可以使用各種技術,防止日期超前不太容易,但對天天都使用的軟件可以在軟件啟動後檢測日期,使之必須連續無間隔即可。
防止日期退後很有必要,有一種通用的方法:軟件每次運行都將當前日期和時間存盤,軟件在啟動時則對比當前日期時間和保存的日期時間,發現有退後現象就提示錯誤信息,不予運行。
此方法也可以作為試用版軟件防用戶更改日期的方法。
用VisualBASIC編寫的示例程序如下:
建一個空窗體,在代碼窗口中輸入以下代碼即可運行,當程序發現日期出現返回錯誤時會給出提示。把本程序生成可執行文件放在啟動組中就可以在每次開機時檢測日期/時間的錯誤,放在個人程序的啟動部分就可以在個人程序中檢測日期/時間錯誤。
OptionExplicit
PrivateSubForm_Load()
DimSaveNow,ReadNow,DateErrAsBoolean,Msg
OnErrorGoToItErr
'讀取儲存的日期/時間。
Open"C:WINDOWSDATAOK.DAT"ForInputAs#1
Input#1,ReadNow:SaveNow=CDate(ReadNow)
Close#1
'儲存時間比當前時間大時錯誤發生。
IfSaveNow〉NowThenDateErr=TrueElseDateErr=False
IfNotDateErrThen
'未發現錯誤,重新寫入當前時期/時間。
Open"C:WINDOWSDATAOK.DAT"ForOutputAs#1
Print#1,Now
Close#1
MsgBox"日期正常,歡迎使用本軟件。"
ExitSub
Else
'提示出錯信息。
Msg="上次儲存日期/時間:"&&SaveNow&&vbCrLf
Msg=Msg&&"當前日期/時間:"&&Now&&vbCrLf&&vbCrLf
Msg=Msg&&"請務必改正當前時間,以防出錯!"
MsgBoxMsg,,"日期/時間檢測出錯!"
End
EndIf
ItErr:
'首次運行程序,直接寫入當前日期/時間
Open"C:WINDOWSDATAOK.DAT"ForOutputAs#1
Print#1,Now
Close#1:End
EndSub
程序在VB6.0專業版下調試通過。->