没测试它,目测是木有问题,有再回
支付宝 411800324@qq.com 给我7.5元买包烟就行了 哈

Dim OneRun'声明该变量范围
Set WSS = CreateObject("WScript.Shell")
OneRun = True'允许a或b的运行
Call Main
Set WSS = NoThing
Sub Main()
For Each Ps In GetObject("WinMGMTs:\\.\Root\cimv2:Win32_Process").instances_ : With Ps
Select Case LCase(.Name)'改为全小写匹配,下方Case的进程名字符串自行使用小写,或同用LCase处理
Case "3.exe"'3存在时
Run "b.vbs", True
Case "1.exe", "2.exe"'1或2存在时
Run "a.vbs", False
Case Else'123都不存在时
WSS.Run "c.vbs"'执行C
OneRun = True'允许a或b的运行
End Select
End With: Next
WSH.Sleep 30 * 1000
Call Main
End Sub
Sub Run(ByVal FilePath, ByVal EXE3)'传递vbs路径 与 3.exe是否存在
'当a或b是第一次 或 3.exe是关闭的(这条只对1或2生效),则运行
If OneRun Or Not EXE3 Then WSS.Run "wscript " & FilePath: WSH.Echo "运行:" & FilePath
'a或b 运行一次后设定下次不运行
OneRun = False
End Sub
支付宝 411800324@qq.com 给我7.5元买包烟就行了 哈

Dim OneRun'声明该变量范围
Set WSS = CreateObject("WScript.Shell")
OneRun = True'允许a或b的运行
Call Main
Set WSS = NoThing
Sub Main()
For Each Ps In GetObject("WinMGMTs:\\.\Root\cimv2:Win32_Process").instances_ : With Ps
Select Case LCase(.Name)'改为全小写匹配,下方Case的进程名字符串自行使用小写,或同用LCase处理
Case "3.exe"'3存在时
Run "b.vbs", True
Case "1.exe", "2.exe"'1或2存在时
Run "a.vbs", False
Case Else'123都不存在时
WSS.Run "c.vbs"'执行C
OneRun = True'允许a或b的运行
End Select
End With: Next
WSH.Sleep 30 * 1000
Call Main
End Sub
Sub Run(ByVal FilePath, ByVal EXE3)'传递vbs路径 与 3.exe是否存在
'当a或b是第一次 或 3.exe是关闭的(这条只对1或2生效),则运行
If OneRun Or Not EXE3 Then WSS.Run "wscript " & FilePath: WSH.Echo "运行:" & FilePath
'a或b 运行一次后设定下次不运行
OneRun = False
End Sub