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

[问题求助] [已解决]VBS如何结束进程及其子进程?

[复制链接]
发表于 2011-7-5 12:53:24 | 显示全部楼层 |阅读模式
VBS如何结束进程及其子进程,不想调用DOS命令。感谢!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-7-5 21:17:39 | 显示全部楼层

  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
复制代码
发表于 2011-7-5 21:27:49 | 显示全部楼层
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
 楼主| 发表于 2011-7-6 20:08:03 | 显示全部楼层
本帖最后由 q115643492 于 2011-7-8 10:04 编辑

谢谢两位!  还有点问题,发现只结束 了子进程,父进程还没结束,我是要全部都结束。可以帮我改改吗?
 楼主| 发表于 2011-7-10 13:44:37 | 显示全部楼层
怎么没人回答我啊 ?好冷清。。。
发表于 2011-7-10 14:23:39 | 显示全部楼层
3楼不是说了吗?
你是完全什么都不懂吗?那就直说啊!你不说谁知道你不懂啊,你说出来大家才知道,就恭恭敬敬把代码按您的要求写出来
发表于 2011-7-10 18:44:11 | 显示全部楼层
3楼不是说了吗?
你是完全什么都不懂吗?那就直说啊!你不说谁知道你不懂啊,你说出来大家才知道,就恭恭敬敬把代码按您的要求写出来
powerbat 发表于 2011-7-10 14:23

淡定
 楼主| 发表于 2011-7-10 19:16:03 | 显示全部楼层
呵呵,别生气撒。我还以为你看到3楼的回复后把2楼的代码上已经修改了。实在对不起!
但我还是个新手,这个真不知道怎么加。
发表于 2011-7-10 19:45:40 | 显示全部楼层
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
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-7-10 19:57:00 | 显示全部楼层
谢谢斑竹!也谢谢powerbat和 Demon!
发表于 2011-7-10 23:07:09 | 显示全部楼层
VBS结束所有指定进程Dim objWMIService,colProcessList
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")   ' " . " 代表本机

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

这个没有结束子进程吧
发表于 2011-7-10 23:20:03 | 显示全部楼层
11# Demon


不一定结束了。有的程序把父进程结束了,其子进程也结束。有的程序不一定子进程结束。看父、子进程的通信如何
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 06:09 , Processed in 0.019953 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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