Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


vbs
Код: Выделить весь код
PrgDir1 = "D:\Games\Marriage V2.3"
PrgExe1 = "marriage.exe"

PrgDir2 = "D:\Games\BUBBLES3"
PrgExe2 = "BS3.EXE"

Paus = 15   'Пауза сек

Set WMI = GetObject("winMgmts:")
Set WShell = CreateObject("WScript.Shell")

' Если PrgExe1 запущен, убъем его
Set Processes = WMI.ExecQuery("Select *From Win32_Process Where Name=" + """" + PrgExe1 + """")
For Each Process In Processes
    Process.Terminate
Next

' Запустим PrgExe1
WShell.CurrentDirectory = PrgDir1
R1 = WShell.Run(PrgExe1, 7, False)

WScript.Sleep Paus * 1000

' Если PrgExe1 запустилась, запустим PrgExe2
Set Processes = WMI.ExecQuery("Select *From Win32_Process Where Name=" + """" + PrgExe1 + """")
If Processes.Count > 0 Then
    WShell.CurrentDirectory = PrgDir2
    R2 = WShell.Run(PrgExe2, 7, False)
Else
    WScript.Quit 1
End If

' Опрашиваем. Если нет PrgExe1 убъем PrgExe2 и завершим скрипт
Do
    WScript.Sleep Paus * 1000
    Set Processes = WMI.ExecQuery("Select *From Win32_Process Where Name=" + """" + PrgExe1 + """")
    If Processes.Count = 0 Then
        Set Processes = WMI.ExecQuery("Select *From Win32_Process Where Name=" + """" + PrgExe2 + """")
        For Each Process In Processes
            Process.Terminate
        Next
        Exit Do
    End If
Loop

MsgBox "Нет " + PrgExe1 + " и " + PrgExe2 + ".  Скрипт завершен"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:24, 03-06-2018 | #10