如何用vbs实现:监控进程aaa.exe是否在运行,如果在运行,则自动运行一次bbb.bat,否则继续无限循环?
如何用vbs实现:监控进程aaa.exe是否在运行,如果在运行,则自动运行一次bbb.bat,如果不在运行,则继续循环监控aaa.exe是否在运行,如此无限循环……注意:...
如何用vbs实现:监控进程aaa.exe是否在运行,如果在运行,则自动运行一次bbb.bat,如果不在运行,则继续循环监控aaa.exe是否在运行,如此无限循环……
注意:如果aaa.exe在运行,则只是运行一次bbb.bat,而当bbb.bat运行完毕自动退出后,在aaa.exe关闭重启前,都不会再次运行。
该vbs脚本不需要弹窗提示,后台运行即可。
我知道这个用批处理很容易实现,但我的情况必须用vbs,请高手支招!感激! 展开
注意:如果aaa.exe在运行,则只是运行一次bbb.bat,而当bbb.bat运行完毕自动退出后,在aaa.exe关闭重启前,都不会再次运行。
该vbs脚本不需要弹窗提示,后台运行即可。
我知道这个用批处理很容易实现,但我的情况必须用vbs,请高手支招!感激! 展开
1个回答
展开全部
看这样子好像是要做病毒?呵呵,代码来如下:
On Error Resume Next
Dim WS,WMI,Objs,OK
Set WS=WScript.CreateObject("WScript.Shell")
Do
Set WMI=GetObject("WinMgmts:")
Set Objs=WMI.InstancesOf("Win32_Process")
For Each Obj In Objs
If Obj.Description="aaa.exe" Then OK=True
'上面代码的双引号中填写要监视的进程名.
Next
If OK Then
WS.Run Chr(34)+"bbb.bat"+Chr(34),0 '这里写如果存在aaa.exe这个进程则运行的程序.
Exit Do
End If
Loop
采纳哦!
追问
按照上述代码运行后,发现如果aaa.exe退出后再次重新启动时,不会自动运行bbb.bat,必须关闭vbs进程再次打开,这时打开aaa.exe才会自动运行bbb.bat,就是说,上述代码只在aaa.exe第一次启动时才会运行bbb.bat,有没有办法实现每次aaa.exe启动时都自动运行一次bbb.bat?
追答
是不是这样啊?
如果是这样代码如下哦:
On Error Resume Next
Dim WS,WMI,Objs,LisEXE,OpenEXE,Have
Set WS=WScript.CreateObject("WScript.Shell")
LisEXE="notepad.exe" '这行的双引号中填写要监视的进程名.
OpenEXE="bbb.bat" '这里写如果存在aaa.exe这个进程则运行的程序.
Do
Set WMI=GetObject("WinMgmts:")
Set Objs=WMI.InstancesOf("Win32_Process")
For Each Obj In Objs
If Obj.Description=LisEXE Then
WS.Run Chr(34)+OpenEXE+Chr(34),1
LisPro
End If
Next
Loop
Private Sub LisPro()
On Error Resume Next
Do
Have=False
Set WMI=GetObject("WinMgmts:")
Set Objs=WMI.InstancesOf("Win32_Process")
For Each Obj In Objs
If Obj.Description=LisEXE Then Have=True
Next
If Have<>True Then Exit Do
Loop
End Sub
这个代码我一开始写的时候遇到了很多麻烦,试了很多种方法才想到这样弄.呵呵,采纳哦!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询