找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 14426|回复: 4

求教VBS提示增多或减少正在运行的进程怎样写?

[复制链接]
发表于 2008-10-29 12:10:28 | 显示全部楼层 |阅读模式
用VBS写,也可以用BAT和VBS结合起来写,用于实时监测进程变化的.(只需显示刚增加或减少的进程则可)
不是列出整个进程表(进程管理器)

谢谢!

[ 本帖最后由 wgmlzj 于 2008-10-29 12:19 编辑 ]
发表于 2008-10-29 13:11:08 | 显示全部楼层
增加或减少以哪个数值为基准?
发表于 2008-10-29 14:20:03 | 显示全部楼层
  1. If WScript.Arguments.Count = 0 Then
  2.         RunExe "cmd /k start /b " _
  3.                 & "cscript //nologo " & """" & WScript.ScriptFullName & """" & " MonitorCreation & " _
  4.                 & "cscript //nologo " & """" & WScript.ScriptFullName & """" & " MonitorDeletion"
  5.         WScript.Quit
  6. End If

  7. Execute WScript.Arguments(0)



  8. Sub RunExe(strPath)
  9.         Dim objWSH
  10.         Set objWSH = CreateObject("WScript.Shell")
  11.         objWSH.Run strPath
  12.         Set objWSH = Nothing
  13. End Sub

  14. Sub MonitorCreation()
  15.         strComputer = "."
  16.         Set objWMIService = GetObject("winmgmts:" _
  17.             & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
  18.         Set colMonitoredProcesses = objWMIService. _        
  19.             ExecNotificationQuery("select * from __instancecreationevent " _
  20.                 & " within 1 where TargetInstance isa 'Win32_Process'")
  21.         i = 0
  22.        
  23.         Do While i = 0
  24.             Set objLatestProcess = colMonitoredProcesses.NextEvent
  25.             Wscript.Echo Now() & "   Process Created: " & vbCrLf & objLatestProcess.TargetInstance.CommandLine & vbCrLf
  26.         Loop
  27. End Sub

  28. Sub MonitorDeletion()
  29.         strComputer = "."
  30.         Set objWMIService = GetObject("winmgmts:" _
  31.             & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
  32.         Set colMonitoredProcesses = objWMIService. _
  33.             ExecNotificationQuery("select * from __instancedeletionevent " _
  34.                     & "within 1 where TargetInstance isa 'Win32_Process'")
  35.         i = 0
  36.        
  37.         Do While i = 0
  38.             Set objLatestProcess = colMonitoredProcesses.NextEvent
  39.             Wscript.Echo Now() & "   Process Deleted: " & vbCrLf & objLatestProcess.TargetInstance.CommandLine & vbCrLf
  40.         Loop
  41. End Sub
复制代码
 楼主| 发表于 2008-10-29 14:48:37 | 显示全部楼层
很好,很好,很有启发,谢谢!
发表于 2008-10-29 17:09:19 | 显示全部楼层
厉害啊!
我看都没看懂!
不过我认为用进程比较就行了吧!
把开始的进程罗列!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:48 , Processed in 0.017365 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表