用批处理或VBS做个进程检测。请教高手

比如有3个程序A.EXE和B.EXE与C.EXE。运行批处理后启动A.EXE后过5分钟检测进程。如果检测到A.EXE进程时关闭B.EXE自动运行C.EXE。最后退出批处理... 比如有3个程序 A.EXE和B.EXE与C.EXE。运行批处理后启动A.EXE后过5分钟检测进程。如果检测到A.EXE进程时关闭B.EXE自动运行C.EXE。最后退出批处理。有高手能指点下吗? 展开
 我来答
hsjzfling
2010-11-15 · TA获得超过284个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:398万
展开全部
'VBS代码如下

PathA = "C:\A.EXE"
PathB = "C:\B.EXE"
PathC = "C:\C.EXE"
Set oWsh = CreateObject("WScript.Shell")
oWsh.Run PathA
WScript.Sleep 300000
For each Process in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_process")
If Process.Name = "A.EXE" Then
For each ProcessB in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_process")
If ProcessB.Name = "B.EXE" Then
ProcessB.Terminate
End If
Next
End If
Next
oWsh.Run PathC
百度网友8764dc4
2010-11-15 · TA获得超过7193个赞
知道大有可为答主
回答量:5364
采纳率:66%
帮助的人:7036万
展开全部
@echo off
start "" "a.exe"
ping -n 300 127.1>nul
tasklist|(>nul findsrt /i "a.exe"&&(taskkill /f /im b.exe&start "" "c.exe"))

运行 a.exe
ping,大概延时也是5分钟左右
检测到a时,关闭b并且运行c后退出

PS:如果检测不到a,则直接退出

如果想让批处理循环检测,加多个goto就行了

@echo off
start "" "a.exe"
:loop
ping -n 300 127.1>nul
tasklist|(>nul findsrt /i "a.exe"&&(taskkill /f /im b.exe&start "" "c.exe"&exit))
goto loop
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式