you never doubt youself,I belive!

windows监控CPU使用率和内存

上一篇 / 下一篇  2014-05-15 14:36:37 / 个人分类:批处理

Dim objFileStream  'txt文本读写流,用于记录日志
Dim objTextFileWriter  'txt写对象
Dim memory  '内存
Dim cpuuse   'CPU使用率
Dim i   '定义计数器
 
Set bjFileStream = CreateObject("Scripting.Filesystemobject") '创建文件系统对象
Set bjTextFileWriter = objFileStream.opentextfile("监控内存和CPU脚本.txt",8,True)  '在脚本相同位置以追加方式打开日志文件,如果不存在,则创建
Set bjSWbemService = GetObject("winmgmts:\\.\root\cimv2")
ProcessName = "DmClient.exe"  '所要监控的进程名称
set colItems = objSWbemService.ExecQuery("select * from Win32_Processor")
for each objItem in colItems
    CpuNum = CpuNum + objItem.NumberOfLogicalProcessors
next
set colItems = objSWbemService.ExecQuery("select * from Win32_Process " & " where Name = '" & ProcessName & "'")
for each objItem in colItems
    ProcessId = objItem.ProcessId
    exit for
next
set colItems = objSWbemService.ExecQuery( "select * from Win32_PerfFormattedData_PerfProc_Process " & " where IDProcess = " & ProcessId)
for each objItem in colItems
    set SWbemObject = objItem
next
i=0
SWbemObject.Refresh_
do
    SWbemObject.Refresh_
 if colItems.count = 0 then
  msgbox "被监测软件没有运行!"
  WScript.Quit  '脚本退出
 else
  set colItems = objSWbemService.ExecQuery("select * from Win32_Process " & " where Name = '" & ProcessName & "'")
  For Each objItem In colItems
   memory = objItem.workingsetsize/1024   '计算内存数
  next
  cpuuse=SWbemObject.PercentProcessorTime / CpuNum '计算单个进程CPU占用率
  if cpuuse>0 and i>0 then  '过滤CPU为0的情况
   objTextFileWriter.WriteLine("当前时间:         " &now& "         进程ID:         "&ProcessId&"         CPU占用率(%):         " &int(cpuuse)& "         内存(KB):         "&memory)      '追加写入到文本
   WScript.Sleep 30000  '休眠30秒
  end if
  i=1
 end if
loop

TAG:

 

评分:0

我来说两句

Open Toolbar