Board logo

标题: [问题求助] [已解决]VBS如何结束进程及其子进程? [打印本页]

作者: q115643492    时间: 2011-7-5 12:53     标题: [已解决]VBS如何结束进程及其子进程?

VBS如何结束进程及其子进程,不想调用DOS命令。感谢!
作者: powerbat    时间: 2011-7-5 21:17

  1. Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate, (debug)}!\\.\root\cimv2")
  2. Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'cmd.exe'")
  3. for each proc in colProcesses
  4.     Set SubProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where ParentProcessId=" & proc.ProcessId)
  5.     for each SubProc in SubProcesses
  6.         'WScript.echo SubProc.Name
  7.         SubProc.Terminate
  8.     next
  9. next
复制代码

作者: Demon    时间: 2011-7-5 21:27

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate, (debug)}!\\.\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'cmd.exe'")
...
powerbat 发表于 2011-7-5 21:17

少了一句proc.Terminate
作者: q115643492    时间: 2011-7-6 20:08

本帖最后由 q115643492 于 2011-7-8 10:04 编辑

谢谢两位!  还有点问题,发现只结束 了子进程,父进程还没结束,我是要全部都结束。可以帮我改改吗?
作者: q115643492    时间: 2011-7-10 13:44

怎么没人回答我啊 ?好冷清。。。
作者: powerbat    时间: 2011-7-10 14:23

3楼不是说了吗?
你是完全什么都不懂吗?那就直说啊!你不说谁知道你不懂啊,你说出来大家才知道,就恭恭敬敬把代码按您的要求写出来
作者: Demon    时间: 2011-7-10 18:44

3楼不是说了吗?
你是完全什么都不懂吗?那就直说啊!你不说谁知道你不懂啊,你说出来大家才知道,就恭恭敬敬把代码按您的要求写出来
powerbat 发表于 2011-7-10 14:23

淡定
作者: q115643492    时间: 2011-7-10 19:16

呵呵,别生气撒。我还以为你看到3楼的回复后把2楼的代码上已经修改了。实在对不起!
但我还是个新手,这个真不知道怎么加。
作者: broly    时间: 2011-7-10 19:45

VBS结束所有指定进程
  1. Dim objWMIService,colProcessList
  2. Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")   ' " . " 代表本机
  3. '把下面的 qq.exe  替换为你的进程名字
  4. Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'qq.exe'")
  5. For Each objProcess in colProcessList
  6.   objProcess.Terminate()
  7. Next
  8. Set objWMIService = Nothing
  9. set colProcessList = Nothing
复制代码

作者: q115643492    时间: 2011-7-10 19:57

谢谢斑竹!也谢谢powerbat和 Demon!
作者: Demon    时间: 2011-7-10 23:07

VBS结束所有指定进程Dim objWMIService,colProcessList
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")   ' " . " 代表本机

'把下面的 qq.exe  替换为你的进程名字
Set colProcessList = objWMISer ...
broly 发表于 2011-7-10 19:45

这个没有结束子进程吧
作者: broly    时间: 2011-7-10 23:20

11# Demon


不一定结束了。有的程序把父进程结束了,其子进程也结束。有的程序不一定子进程结束。看父、子进程的通信如何




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2