另一个vbs代码。也需要修改。- 'VBS校准系统时间 BY BatMan
- On Error Resume Next
- Dim objXML, Url, Message
- 'Message = "恭喜你,本机时间非常准确无需校对!"
- 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, y, M, D, H, MI, S, NewDateTime
- DM = DateAdd("S", Num, Now())
- y = Year(DM)
- M = Right(0 & Month(DM), 2)
- D = Right(0 & Day(DM), 2)
- H = Right(0 & Hour(DM), 2)
- MI = Right(0 & Minute(DM), 2)
- S = Right(0 & Second(DM), 2)
- NewDateTime = y & M & D & H & MI & S & ".000000+480"
- Dim objWMI, objItems, objItem
- Set objWMI = GetObject("winmgmts:{(systemtime)}!\\.\Root\Cimv2")
- Set objItems = objWMI.ExecQuery("Select * From Win32_OperatingSystem")
- For Each objItem In objItems
- objItem.SetDateTime NewDateTime
- Next
- Set objWMI = Nothing
- Num1 = Abs(DateDiff("s", Now(), BJDate))
- ' Message = "【校准前】" & vbCrLf _
- ' & "标准北京时间为:" & vbTab & BJDate & vbCrLf _
- ' & "本机系统时间为:" & vbTab & LocalDate & vbCrLf _
- ' & "与标准时间相差:" & vbTab & Abs(Num) & "秒" & vbCrLf & vbCrLf _
- ' & "【校准后】" & vbCrLf _
- ' & "本机系统时间为:" & vbTab & Now() & vbCrLf _
- ' & "与标准时间相差:" & vbTab & Num1 & "秒"
- Set objSHELL = Nothing
- End If
- 'Wscript.Echo Message
复制代码
|