校準(zhǔn)系統(tǒng)時(shí)間的VBS代碼

字號(hào):


    更新為自動(dòng)判斷時(shí)間格式,WIN7 XP測(cè)試通過,WIN8待測(cè)試,主要是通過獲取百度的相關(guān)信息然后跟系統(tǒng)時(shí)間進(jìn)行比較
    代碼如下:
    'VBS校準(zhǔn)系統(tǒng)時(shí)間 BY BatMan 
    Dim objXML, Url, Message 
    Message = "恭喜你,本機(jī)時(shí)間非常準(zhǔn)確無需校對(duì)!" 
    Set objXML = CreateObject("MSXML2.XmlHttp") 
    Url = "http://open.baidu.com/special/time/" 
    objXML.open "GET", Url, False 
    objXML.send() 
    Do Until objXML.readyState = 4 : WScript.Sleep 200 : Loop 
    Dim objStr, LocalDate 
    objStr = objXML.responseText 
    LocalDate = Now() 
    Set objXML = Nothing 
    Dim objREG, regNum 
    Set objREG = New RegExp 
    objREG.Global = True 
    objREG.IgnoreCase = True 
    objREG.Pattern = "window.baidu_time\((\d{13,})\)" 
    regNum = Int(objREG.Execute(objStr)(0).Submatches(0)) /1000 
    Dim OldDate, BJDate, Num, Num1 
    OldDate = "1970-01-01 08:00:00" 
    BJDate = DateAdd("s", regNum, OldDate) 
    Num = DateDiff("s", LocalDate, BJDate) 
    If Abs(Num) >=1 Then 
    Dim DM, DT, TM, objSHELL 
    DM = DateAdd("S", Num, Now()) 
    DT = DateValue(DM) 
    TM = TimeValue(DM) 
    If InStr(Now, "午") Then 
    Dim Arr, Arr1, h24 
    Arr = Split(TM, " ") 
    Arr1 = Split(Arr(1), ":") 
    h24 = Arr1(0) 
    If Arr(0) = "下午" Then 
    h24 = h24 + 12 
    Else 
    If h24 = 12 Then h24 = 0 
    End If 
    TM = h24 & ":" & Arr1(1) & ":" & Arr1(2) 
    End If 
    Set objSHELL = CreateObject("Wscript.Shell") 
    objSHELL.Run "cmd /cdate " & DT, False, True 
    objSHELL.Run "cmd /ctime " & TM, False, True 
    Num1 = Abs(DateDiff("s", Now(), BJDate)) 
    Message = "【校準(zhǔn)前】" & vbCrLf _ 
    & "標(biāo)準(zhǔn)北京時(shí)間為:" & vbTab & BJDate & vbCrLf _ 
    & "本機(jī)系統(tǒng)時(shí)間為:" & vbTab & LocalDate & vbCrLf _ 
    & "與標(biāo)準(zhǔn)時(shí)間相差:" & vbTab & Abs(Num) & "秒" & vbCrLf & vbCrLf _ 
    & "【校準(zhǔn)后】" & vbCrLf _ 
    & "本機(jī)系統(tǒng)時(shí)間為:" & vbTab & Now() & vbCrLf _ 
    & "與標(biāo)準(zhǔn)時(shí)間相差:" & vbTab & Num1 & "秒" 
    Set objSHELL = Nothing 
    End If 
    WScript.Echo Message