Check if a Process is using CPU
Keywords: Process CPU processing
Question:
In Winbatch 2000 and Windows XP, I have troubles with a program that does not really go out of the memory. Anytime I call it, it opens a new process...As long as I use the program, it needs CPU-time every so many seconds. So I think I can kill the process if it does not use CPU-time for 5 seconds or so...
Is there any way to check about a process is using CPU-time?
Answer:
More information on the program and processes started might be helpful. By any chance is the application you are srarting a 16 bit Windows app? When you start a 16-bit program on a computer running Windows NT (4/2000/XP), the Ntvdm.exe and Wowexec.exe processes start. After you quit the 16-bit program, the Ntvdm.exe and Wowexec.exe processes remain in memory.This behavior is a design feature of Windows NT. The Ntvdm.exe and Wowexec.exe processes remain in memory in case you start another 16-bit program. Leaving the Windows-On-Windows (WOW) environment (which consists of the Ntvdm.exe and Wowexec.exe processes) in memory improves performance.
The WOW environment is not loaded when you start Windows NT. It is loaded when you first start a 16-bit program.
However if you are refering to a 32 bit application, Maybe if the following code fits your needs. It basically monitors a process every second or so, and checks the '% processing time'. It will wait up to the value specified by the timeout variable.
AddExtender("wproc34i.dll") timeout = 5 appname = "PopMenu" counterstring=StrCat("\Process(", appname,")\%% Processor Time") BoxOpen( counterstring ,"") IntControl(54,counterstring,1,0,0) if WinVersion(4)==4; NT timer = 0 intdat = 0 While timer<=timeout && intdat==0 intdat=tGetData(counterstring,0) if intdat!=0 timer = 0 intdat = 0 continue endif BoxText(strcat("Timer ",timer,@CRLF,"Int Value: ",intdat)) TimeDelay(0.5) timer=timer+1 EndWhile else Message("tGetData", "Is designed to run on NT") endif BoxShut() Message("Done","No real processing occured in the last 5 seconds" ) exitIf this doesn't fit your needs, you might want to look into some of the other 'counters' that are available that you can monitor. For a list of available counters you can launch perfmon.exe on our system.....
Article ID: W15075