会员: 密码:  免费注册 | 忘记密码 | 会员登录 网页功能: 加入收藏 设为首页 网站搜索  
 安全技术技术文档
  · 安全配制
  · 工具介绍
  · 黑客教学
  · 防火墙
  · 漏洞分析
  · 破解专题
  · 黑客编程
  · 入侵检测
 安全技术论坛
  · 安全配制
  · 工具介绍
  · 防火墙
  · 黑客入侵
  · 漏洞检测
  · 破解方法
  · 杀毒专区
 安全技术工具下载
  · 扫描工具
  · 攻击程序
  · 后门木马
  · 拒绝服务
  · 口令破解
  · 代理程序
  · 防火墙
  · 加密解密
  · 入侵检测
  · 攻防演示
技术文档 > VB文档 > 系统控制
拒绝录入错误日期的编程方法
发表日期:2003-07-30 00:00:00作者:� 出处:  

  越来越多的软件对日期很敏感,如进销存类软件、财务管理软件等等。当有误操作或使用了破坏系统日期的软件(如CMOS恢复),及病毒感染等情况发生后,可能会使系统日期更改,从而使软件对数据的统计汇总等操作出现较大误差,甚至造成不可挽救的损失。

  为了防止日期出错可以使用各种技术,防止日期超前不太容易,但对天天都使用的软件可以在软件启动后检测日期,使之必须连续无间隔即可。

  防止日期退后很有必要,有一种通用的方法:软件每次运行都将当前日期和时间存盘,软件在启动时则对比当前日期时间和保存的日期时间,发现有退后现象就提示错误信息,不予运行。

  此方法也可以作为试用版软件防用户更改日期的方法。

  用Visual BASIC编写的示例程序如下:

  建一个空窗体,在代码窗口中输入以下代码即可运行,当程序发现日期出现返回错误时会给出提示。把本程序生成可执行文件放在启动组中就可以在每次开机时检测日期/时间的错误,放在个人程序的启动部分就可以在个人程序中检测日期/时间错误。

  Option Explicit

  Private Sub Form_Load()

  Dim SaveNow, ReadNow, DateErr As Boolean, Msg

  On Error GoTo ItErr

  '读取储存的日期/时间。

  Open "C:\WINDOWS\DATAOK.DAT" For Input As #1

  Input #1, ReadNow: SaveNow = CDate(ReadNow)

  Close #1

  '储存时间比当前时间大时错误发生。

  If SaveNow〉Now Then DateErr = True Else DateErr = False

  If Not DateErr Then

  '未发现错误,重新写入当前时期/时间。

  Open "C:\WINDOWS\DATAOK.DAT" For Output As #1

  Print #1, Now

  Close #1

  MsgBox "日期正常,欢迎使用本软件。"

  Exit Sub

  Else

  '提示出错信息。

  Msg = "上次储存日期/时间:" && SaveNow && vbCrLf

  Msg = Msg && "当前日期/时间:" && Now && vbCrLf && vbCrLf

  Msg = Msg && "请务必改正当前时间,以防出错!"

  MsgBox Msg, , "日期/时间检测出错!"

  End

  End If

  ItErr:

  '首次运行程序,直接写入当前日期/时间

  Open "C:\WINDOWS\DATAOK.DAT" For Output As #1

  Print #1, Now

  Close #1: End

  End Sub

  

  程序在VB 6.0专业版下调试通过。

【返回顶部】 【打印本页】 【关闭窗口】

关于我们 / 给我留言 / 版权举报 / 意见建议 / 网站编程QQ群   
Copyright ©2003- 2026 Lihuasoft.net webmaster(at)lihuasoft.net 加载时间 0.00167