首页 > 编程 > VBScript > 正文

VBS中获取系统本次及上次开关机时间的代码(WinXP/win2003/Win7兼容版)

2020-06-26 18:31:41
字体:
来源:转载
供稿:网友
获取系统本次及上次开关机时间的vbs代码,经测试兼容WinXP/win2003/Win7系统,喜欢的朋友可以收藏下
 
复制代码代码如下:

If (Lcase(Right(Wscript.FullName,11)) = "wscript.exe") Then 
CreateObject("WScript.Shell").Run("%Comspec% /C " &Chr(34)&"mode con cols=100&Cscript.exe //NoLogo "&Chr(34)& Wscript.ScriptFullName &Chr(34)&"&&(Echo 此窗口40秒后自动关闭...&Ping -n 40 127.0.1>nul&Exit)"&Chr(34)),3:Wscript.Quit 
Wscript.Quit 
End If 
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!//./root/cimv2") 
Set colLoggedEvents = WMI.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = 'System' And EventCode = '6005' Or EventCode = '6006' Or EventCode = '6008'") 
For Each objEvent In colLoggedEvents 
Flag = Flag + 1 
If Flag = 1 Then 
Wscript.Echo "本次开机时间: " & UTCtoNow(objEvent.TimeWritten) 
ElseIf (Flag Mod 2) = 0 Then 
G = UTCtoNow(objEvent.TimeWritten) 
Else 
K = UTCtoNow(objEvent.TimeWritten) 
Wscript.Echo "前次开机:"&K&" "&vbTab&"对应关机:"&G&" "&vbTab& "运行时长:" &StoHMS(DateDiff("s", K, G)) 
End If 
Next 

Function UTCtoNow(nD) 
If Not IsNull(nD) Then 
Set SWDT = CreateObject("WbemScripting.SWbemDateTime") 
SWDT.Value = nD 
UTCtoNow = SWDT.GetVarDate(True) 
End If 
End Function 

Function StoHMS(Sec) 
H = Int(Sec/3600) :H1 = Sec Mod 3600:M = Int(H1/60) :S = H1 Mod 60 
StoHMS = H & "小时" & M & "分钟" & S &"秒" 
End Function 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表