Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords: Percent Total CPU Usage Time Processor PercentProcessorTime IDProcess
; Get on-going performance data for a specific process without repeated polling strComputer = "." objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" : strComputer : "\root\cimv2") PerfProcess = objWMIService.Get("Win32_PerfFormattedData_PerfProc_Process.Name='Notepad'") WindowOnTop( "", 1 ) BoxOpen('Performance data (refreshed every 1 second)', 'Initiating Process...') While @TRUE PerfProcess.Refresh_ BoxText("Press Ctrl+Break to Cancel Processing":@CRLF:@CRLF: PerfProcess.PercentProcessorTime) TimeDelay(1) EndWhile PerfProcess = 0 objWMIService = 0 Exit
Get on-going performance data for all processes without repeated polling
; Get on-going performance data for all processes without repeated polling strComputer = "." objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" : strComputer : "\root\cimv2") objRefresher = CreateObject("WbemScripting.Swbemrefresher") objProcessor = objRefresher.AddEnum (objWMIService, "Win32_PerfFormattedData_PerfOS_Processor").ObjectSet WindowOnTop( "", 1 ) BoxOpen('Performance data (refreshed every 5 seconds)', 'Initiating Process...') While @TRUE objRefresher.Refresh ForEach RefreshItem In objRefresher ForEach objProcess In RefreshItem.ObjectSet data = objProcess.GetObjectText_ arrData = Arrayize(data, ";") ; Obtain only data from _Total ptr = StrIndexNC( data, "_Total", 1, @FWDSCAN ) If ptr != 0 mydata = arrData[14]; PercentProcessorTime BoxText("Press Ctrl+Break to Cancel Processing":@CRLF:@CRLF:mydata) EndIf Next Next TimeDelay(5) EndWhile objProcessor = 0 objRefresher = 0 objWMIService = 0 Exit
Using older version techniques - Get on-going performance data for all processes without repeated polling
; Using older version techniques checkevery = 2 ; seconds objLocator = ObjectOpen("WbemScripting.SWbemLocator") objWMIService = objLocator.ConnectServer("","root/cimv2","","") objRefresher = ObjectOpen("WbemScripting.Swbemrefresher") objProcessor = objRefresher.AddEnum (objWMIService, "Win32_PerfFormattedData_PerfOS_Processor").ObjectSet WindowOnTop( "", 1 ) BoxOpen(StrCat('Performance data (refreshed every ',checkevery,' seconds)'), 'Initiating Process...') While @TRUE objRefresher.Refresh hEnum1 = ObjectCollectionOpen(objRefresher) While 1 objRefreshItem = ObjectCollectionNext(hEnum1) If objRefreshItem == 0 Then Break hEnum2 = ObjectCollectionOpen(objRefreshItem.ObjectSet) While 1 objProcess = ObjectCollectionNext(hEnum2) If objProcess == 0 Then Break data = objProcess.GetObjectText_ ; Obtain only data from _Total ptr = StrIndexNC( data, "_Total", 1, @FWDSCAN ) If ptr != 0 mydata = ItemExtract( 15, data, ';' ); PercentProcessorTime BoxText(StrCat("Press Ctrl+Break to Cancel Processing",@CRLF,@CRLF,mydata)) EndIf ObjectClose(objProcess) EndWhile ObjectCollectionClose(hEnum2) ObjectClose(objRefreshItem) EndWhile ObjectCollectionClose(hEnum1) TimeDelay(checkevery) EndWhile ObjectClose(objProcessor) ObjectClose(objRefresher) ObjectClose(objWMIService) ObjectClose(objLocator) Exit
Article ID: W18477
Filename: Total CPU Usage.txt
File Created: 2012:10:29:12:50:26
Last Updated: 2012:10:29:12:50:26