WMI获取进程CPU占用率

Monitor 

% Process CPU Usage (specific process)
http://www.tek-tips.com/viewthread.cfm?qid=395765
 
for each Process in GetObject("winmgmts:{impersonationLevel=impersonate}//localhost").ExecQuery("Select PercentProcessorTime,IDProcess from Win32_PerfFormattedData_PerfProc_Process where IDProcess=4092")
   
   WScript.Echo("================================")
   For Each oProperty In Process.Properties_
        WScript.stdout.write vbtab & oProperty.Name & "="
        If IsArray(oProperty) Then
            For iCount = 0 To UBound(oProperty)
                WScript.stdout.write  oProperty.Value(iCount) & "," 
            Next
            WScript.StdOut.WriteLine 
        ElseIf IsNull(oProperty) Then
            WScript.stdout.writeline "Property not set"
        Else
            WScript.stdout.writeline oProperty.Value 
        End If 
    Next
    WScript.Echo(Process.PercentProcessorTime)
  WScript.quit  
next
====================================================================================
for each Process in GetObject("winmgmts:").ExecQuery("Select * from Win32_Process")
   WScript.echo Process.name & " " & CPUUSage(Process.Handle) & " %"   
Next

Function CPUUSage( ProcID )
 On Error Resume Next
    
 Set objService = GetObject("Winmgmts:{impersonationlevel=impersonate}!\Root\Cimv2")
    
 For Each objInstance1 in objService.ExecQuery("Select * from Win32_PerfRawData_PerfProc_Process where IDProcess = '" & ProcID & "'")
  N1 = objInstance1.PercentProcessorTime
  D1 = objInstance1.TimeStamp_Sys100NS
  Exit For
 Next
 'WScript.Sleep(2000)
 
 For Each perf_instance2 in objService.ExecQuery("Select * from Win32_PerfRawData_PerfProc_Process where IDProcess = '" & ProcID & "'")
  N2 = perf_instance2.PercentProcessorTime
  D2 = perf_instance2.TimeStamp_Sys100NS
  Exit For
 Next
 ' CounterType - PERF_100NSEC_TIMER_INV
 ' Formula - (1- ((N2 - N1) / (D2 - D1))) x 100
 Nd = (N2 - N1)
 Dd = (D2-D1)
 PercentProcessorTime = ( (Nd/Dd))  * 100
       
 CPUUSage = Round(PercentProcessorTime ,0)
End Function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值