标题: [问题求助] VBS监控内存如何通过WMI获取进程的虚拟内存使用量? [打印本页]
作者: 将脚本进行到底 时间: 2013-5-31 14:40 标题: VBS监控内存如何通过WMI获取进程的虚拟内存使用量?
想通过WMI获取一个进程没有映射在物理内存里的虚拟内存使用量,不知道怎么才能获得,希望大家们帮帮忙!
作者: ooaf 时间: 2013-6-2 19:09
回复 1# 将脚本进行到底
以前做了这个,你看看有没有帮助- 'by @hello老崔
-
-
- '---------------------------
-
- '---------------------------
- '特别说明:每隔3秒抓取一次内存数值,单位:KB !!
-
- '开始时间:20:05:02,结束时间:20:05:05,时间间隔:3分钟
-
- '监控文件保存在:d:\alg.exe--20-5_monitor.txt
- '---------------------------
- '确定
- '---------------------------
-
- on error resume next
- stnCx="."
- Set obj=GetObject("winMGmts:\\" & sTnCx & "\root\cImV2")
- Set col=obj.ExecQuerY("Select * from Win32_ProCEss WherE " & "Name = 'cscript.exe' or Name = 'wscript.exe'")
- Set fso = CreateObject("Scripting.FileSystemObject")
-
- n=0
- processname=InputBox("输入进程名称:","提示")
- MsgBox "确认输入的进程名称:"&processname
- t= CInt(inputbox("现在时间是:"&Time&"输入监控时间,单位:(分钟)","提示"))
- atime=Time
- filename="d:\"&processname&"--"&CStr(Hour(time))&"-"&CStr(Minute(time))&"_monitor.txt"
- Set file=fso.CreateTextFile(filename,True)
-
- If processname<>"" then
- Do
- If (t-n/60) <1 Then
- Exit Do
- else
-
- Set col=obj.ExecQuerY("Select * from Win32_ProCEss WherE " & "Name = '"& processname &"'")
- If col.count=0 Then
- exits
- else
- For Each wmiObject In col
- memorys = wmiObject.workingsetsize/1024
- file.writeline memorys
- next
- End if
- End if
- WScript.Sleep 3000
- n= n+3
- Loop
- file.close
-
- Else
- MsgBox "没有输入进程名称!"
- End If
-
- MsgBox "特别说明:每隔3秒抓取一次内存数值,单位:KB !!" &vbCrLf&vbcrlf&"开始时间:"&CStr(atime)&",结束时间:"&CStr(Time)&",时间间隔:"&CStr(n/60)&"分钟"&vbCrLf&vbcrlf&"监控文件保存在:"&filename
-
- Function exits()
- MsgBox "没有找到进程,点击确定退出!"
- WScript.quit
- End Function
复制代码
作者: zhangop9 时间: 2021-1-2 19:10
监控内存如何通过WMI获取进程的虚拟内存使用量
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |