程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 用VB實現在程序運行時使系統日期和不被修改

用VB實現在程序運行時使系統日期和不被修改

編輯:VB綜合教程
在開發軟件時,有時可能需要使軟件在運行時不讓別人從控制面板中修改修改系統的日期和時間,實現此功能的具體思路是:在軟件運行是自己建立一個時鐘,如果發現系統時間被修改,再用自己的時鐘將系統時間改回來就可以了,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()
  Ifh<10Then
  strh="0"&h
  Else
  strh=h
  EndIf
  
  Ifm<10Then
  strm="0"&m
  Else
  strm=m
  EndIf
  
  Ifs<10Then
  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->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved