Код:

exe1 = "notepad.exe"
exe2 = "calc.exe"
exe3 = "ftp.exe"
TimeWait = 3 ' Время опроса наличия exe2
PScript = Replace(WScript.ScriptFullName, WScript.ScriptName, "")
' PScript = "C:\Windows\System32\"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WMI = GetObject("winMgmts:")
Set WshS = CreateObject("WScript.Shell")
Msg = ""
If Not FSO.FileExists(PScript + exe1) Then Msg = Msg + vbCrLf + exe1
If Not FSO.FileExists(PScript + exe2) Then Msg = Msg + vbCrLf + exe2
If Not FSO.FileExists(PScript + exe3) Then Msg = Msg + vbCrLf + exe3
If Not Len(Msg) = 0 Then
Msg = "В папке" + vbCrLf + PScript + vbCrLf + "Отсутствует:" + vbCrLf + Msg
MsgBox Msg
Else
' Если выполняется exe3, то, если есть, убиваем exe1 и exe2 и ничего не делаем
If ExistProc(exe3, False) Then
Answer = ExistProc(exe1, True)
Answer = ExistProc(exe2, True)
MsgBox "Выполняется " + exe3
WScript.Quit
End If
' Если выполняется exe1, и нет exe2 то завершаем exe1 и запускаем exe3
If ExistProc(exe1, False) And Not ExistProc(exe2, False) Then
Answer = ExistProc(exe1, True)
Answer = WshS.Run(PScript + exe3, 1, False)
WScript.Quit
End If
' Если выполняется exe1, и exe2 то ждем завершения exe2
If ExistProc(exe1, False) And ExistProc(exe2, False) Then
Msg = "Выполняются " + vbCrLf + vbCrLf + exe1 + vbCrLf + exe2 + vbCrLf + vbCrLf + "Ожидание завершения пользователем" + vbCrLf + vbCrLf + exe2
Answer = WshS.Popup(Msg, 10, "Информация к сведению", 0)
Else
' Запускаем exe1 и exe2
Answer = ExistProc(exe1, True)
Answer = ExistProc(exe2, True)
Answer = WshS.Run(PScript + exe1, 1, False)
Answer = WshS.Run(PScript + exe2, 1, False)
End If
' После завершения exe2 убьем exe1 и запустим exe3
Do
If ExistProc(exe2, False) Then
WScript.Sleep(TimeWait*1000)
Else
Answer = ExistProc(exe1, True)
Answer = WshS.Run(PScript + exe3, 1, False)
Exit Do
End If
Loop
End If
Function ExistProc(NProc, Cancel)
SQuery = "Select * From Win32_Process Where Name=" + """" + NProc + """"
Set Processes = WMI.ExecQuery(SQuery)
ExistProc = (Processes.Count <> 0)
If ExistProc And Cancel Then
For Each Process In Processes
Process.Terminate
Next
'WScript.Sleep 2000
End If
End Function