• 显示系统运行时间


    strcomputer ="."
    Set dtmConvertedDate = CreateObject("WbemScripting.SWbemDateTime")
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\" & strComputer & "
    ootcimv2")
    Set colOperatingSystems = objWMIService.ExecQuery _
        ("Select * from Win32_OperatingSystem")
    For Each objOS in colOperatingSystems
        dtmConvertedDate.Value = objOS.LastBootUpTime
        dtmLastBootUpTime = dtmConvertedDate.GetVarDate
        dtmSystemUptime = stoHMS(datediff("s", dtmLastBootUpTime, now))
        WScript.Echo dtmSystemUptime
    Next
    
    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


    该例还可简化为for each objOS in GetObject("winmgmts:").InstancesOf ("Win32_OperatingSystem")  Next

    再来个AHK版的

    For objOS In ComObjGet("winmgmts:\").InstancesOf("Win32_OperatingSystem") {
        temp := objOS.LastBootUpTime
        StringLeft, dtmLastBootUpTime, temp, 14
        dtmSystemUpTime := %A_Now%
        EnvSub, dtmSystemUpTime, %dtmLastBootUpTime%, Seconds
        Sec := dtmSystemUpTime
        H := Sec//3600
        H1 := Mod(Sec,3600)
        M := H1//60 
        S := Mod(H1,60)
        MsgBox %H%小时%M%分钟%S%秒
    }

    再来个调用Win32_NTLogEvent查寻最近开关机时间

    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}!\.
    ootcimv2")
    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
  • 相关阅读:
    零基础学习java------day4------流程控制结构
    零基础学习java------day3-运算符 以及eclipse的使用
    [Codeforces Round #195 (Div. 2)] A. Vasily the Bear and Triangle
    [POJ] 1011 Sticks
    [Ioi2007]Miners 矿工配餐(BZOJ1806)
    [LA] 2031 Dance Dance Revolution
    [TYVJ] P1023 奶牛的锻炼
    ACM训练计划step 2 [非原创]
    ACM训练计划step 1 [非原创]
    [POJ] 1797 Heavy Transportation
  • 原文地址:https://www.cnblogs.com/cnsealine/p/3364447.html
Copyright © 2020-2023  润新知