编程保护系统时间

Author: 张和据 Date: 2001年 47期

?牐牬蠹抑溃低呈奔洌ㄈ掌诤褪奔洌┒哉媸导锹技扑慊氖褂们榭龊苡幸庖濉P矶喙蚕砣砑彩歉菹低呈奔淙范ㄆ涿夥训氖杂闷谑欠窠崾R虼耍斜匾;は低呈奔洌瓜低呈奔洳槐凰嬉庑薷摹O衷冢颐侵灰肰B编写很简单的代码就能达到保护系统时间的目的。具体方法如下:
  ?牐犜诵蠽B,在窗体上增加定时器控件TIMER1和TIMER2,双击窗体,编写如下代码:
  ?牐燩rivate Sub Form_Load()
  ?牐燤e.Hide
  ?牐燭imer1.Interval = 300
  ?牐燭imer2.Interval = 1000
  ?牐燭imer1.Enabled = True
  ?牐燭imer2.Enabled = False
  ?牐燛nd Sub
  ?牐犜诖疤迳纤鱐IMER1,编写如下代码:
  ?牐燩rivate Sub Timer1_Timer()
  ?牐燙all getwingcap
  ?牐爓incaption = getwingcap
  ?牐營f (wincaption Like “*日期/时间*”) Then
  ?牐燙all savtime
  ?牐燭imer1.Enabled = False
  ?牐燭imer2.Enabled = True
  ?牐燛nd If
  ?牐營f(wincaption Like “*MS-DOS*”) Then
  ?牐燙all savtime
  ?牐燭imer1.Enabled = False
  ?牐燭imer2.Enabled = True
  ?牐燛nd If
  ?牐燛nd Sub
  ?牐犛猛姆椒ū嘈碩IMER2的代码:
  ?牐燩rivate Sub Timer2_Timer()?煟?
  ?牐燾ountime = countime + 1
  ?牐燙all closetimewindows
  ?牐營f winHwnd = 0 Then
  ?牐燚ate = savdata '恢复系统日期
  ?牐燭ime = savtimer + TimeSerial(0, 0, countime) '恢复系统时间
  ?牐燭imer2.Enabled = False
  ?牐燭imer1.Enabled = True
  ?牐燛nd If
  ?牐燛nd Sub
  ?牐犜凇肮こ獭辈说ブ械慊鳌疤砑幽?椤保缓螅尤肴缦律鳌⒑凸蹋?
  ?牐燚eclare Function FindWindow Lib “user32” Alias “FindWindowA”(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  ?牐燚eclare Function GetWindowText Lib “user32” Alias “GetWindowTextA” ?烞yVal hwnd As Long( ByVal lpString As String ByVal cch As Long) As Long
  ?牐燚eclare Function GetForegroundWindow Lib “user32”() As Long
  ?牐燩ublic wincaption As String
  ?牐燩ublic winHwnd, countime As Long
  ?牐燩ublic savdata As Date
  ?牐燩ublic savtimer
  ?牐燩ublic Function getwingcap() '取更改日期/时间窗口标题
  ?牐燚im strcap As String
  ?牐爏trcap = String(255, 9)??
  ?牐爄nglen = Len(strcap)??
  ?牐爇 = GetWindowText(GetForegroundWindow, strcap, inglen)??
  ?牐爂etwingcap = strcap
  ?牐燛nd Function
  ?牐燩ublic Sub closetimewindows()''查找日期/时间窗口是否关闭
  ?牐爓inHwnd = FindWindow?焩bNullString wincaption??
  ?牐燛nd Sub
  ?牐燩ublic Sub savtime()''保存系统未被更改前的日期/时间
  ?牐爏avdata = Date
  ?牐爏avtimer = Time
  ?牐燾ountime = 0
  ?牐燛nd Sub
  ?牐犚陨洗氡嘈赐瓯虾螅嘁肷煽芍葱形募尤氲阶⒉岜淼腍KEY_LOCAL_
  ?牐燤ACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run键下,以后,每次系统启动时,它就自动在后台运行,始终保护系统时间不被更改。即使有人在MS-DOS窗口下更改日期和时间,也能够自动恢复到原来的日期和时间(在CMOS或纯DOS环境下更改时间,本程序无法保护)。