用VB实现在程序运行时使系统日期和不被修改

2016-02-19 16:30 1 1 收藏

下面,图老师小编带您去了解一下用VB实现在程序运行时使系统日期和不被修改,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - 编程语言 】

在开发软件时,有时可能需要使软件在运行时不让别人从控制面板中修改修改系统的日期和时间,实现此功能的具体思路是:在软件运行是自己建立一个时钟,如果发现系统时间被修改,再用自己的时钟将系统时间改回来就可以了,VB中有一个控件叫SysInfo,可以用它的TimeChanged事件来监测系统时间是否已修改,请看下面的例子程序:
  1、建立一个标准EXE工程,在Form1上添加一个Timer控件、Label控件和SysInfo控件;
  2、声明以下变量:
  '表示小时的整数
  DimhAsInteger
  '表示分钟的整数
  DimmAsInteger
  '表示秒的整数
  DimsAsInteger
  '表示小时的字符串
  DimstrhAsString
  '表示分钟的字符串
  DimstrmAsString
  '表表示秒的字符串
  DimstrsAsString
  '表示修改前的日期
  DimriqiAsDate
  '表示修改前的时刻
  DimshikeAsDate
  
  3、其它代码如下:
  PrivateSubForm_Load()
  '取出系统时间和日期初始化变量
  h=Hour(Now)
  m=Minute(Now)
  s=Second(Now)
  riqi=DateValue(Now)
  EndSub
  
  
  PrivateSubTimechange()
  Ifh10Then
  strh="0"&h
  Else
  strh=h
  EndIf
  
  Ifm10Then
  strm="0"&m
  Else
  strm=m
  EndIf
  
  Ifs10Then
  strs="0"&s
  Else
  strs=s
  EndIf
  shike=Timevalue(strh&":"&strm&":"&strs)
  
  EndSub
  
  
  PrivateSubSysInfo1_TimeChanged()
  IfNotTimeValue(Now)=shikeThen
  Time=shike
  EndIf
  IfNotDateValue(Now)=riqiThen
  Date=riqi
  EndIf
  EndSub
  
  PrivateSubTimer1_Timer()
  s=s 1
  '由于用Timer控件计时存在一定误差,所以每分钟校正一次时间
  Ifs=60Then
  h=Hour(Now)
  m=Minute(Now)
  s=Second(Now)
  '零点时改变riqi变量的值
  Ifh=0Then
  riqi=DateValue(Now)
  EndIf
  EndIf
  Timechange
  Label1.Caption=shike
  EndSub->

来源:https://www.tulaoshi.com/n/20160219/1612298.html

延伸阅读
如何在运行时确定对象类型(RTTI) 作者:NorthTibet     RTTI 是“Runtime Type Information”的缩写,意思是:运行时类型信息。它提供了运行时确定对象类型的方法。本文将简略介绍 RTTI 的一些背景知识、描述 RTTI 的概念,并通过具体例子和代码介绍什么时候使用以及如何使用 RTTI...
反射类所使用的设计模式 System.Reflection 类中最常用的方法都使用统一的模式。Module、Type 和 MemberInfo 类的成员使用下表中所示的设计模式。成员签名说明MyInstance[] FindXxx(filter, filterCriteria)查找并返回经过筛选的类型列表,或者在当前类型没有实现任何匹配筛选器的类型的情况下返回空数组。 例如:Type.FindInterfacesMyInstanc...
访问自定义属性 当属性与程序元素相关联后,可以使用反射来查询它们是否存在以及它们的值。用于查询属性的主要反射方法包含在 System.Reflection.MemberInfo.GetCustomAttributes 和 System.Reflection.Assembly.GetCustomAttributes 中。 自定义属性的可访问性根据附加该属性的程序集来进行检查。这相当于检查附加自定义属性的程序集中的类型...
飞信登录报C++运行时错误 故障现象: 登录时出现报错 原因分析: 原来安装过飞信,系统当中有之前的飞信文件存在。 解决方案: 在我的文档那个文件夹里,把那个叫fetion的文件夹删掉就可以了。
标签: 电脑入门
有些用户忘记了自己上次是什么时候关机,又想知道自己的MAC运行了多长时间,那么该如何解决这个问题呢?其实很简单,现在就让图老师小编教你一个解决的方法吧。 打开苹果电脑 Mac OS X 系统自带的终端工具(找不到的话,点击屏幕右上角的放大镜标志,Spotlight搜索端或terminal),输入uptime(无引号)即可查询这台苹果电脑一共运行了多长...

经验教程

611

收藏

16
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部