Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Запуск двух программ (http://forum.oszone.net/showthread.php?t=336204)

pzh2393 14-08-2018 21:36 2826514

Запуск двух программ
 
Есть необходимость автоматизировать запуск двух программ, причем вторая должна запускаться только после того как запустится первая (ну на крайний случай достаточно задержки в 30 секунд).
Вопрос осложняется еще тем, что первая находится по пути C:\Users\CurentUser\AppData\Local\Program\Program.exe, т.е. путь зависит от того под каким пользователем зашли в систему.
А вторая вовсе на другом диске. Скажем D:\Program\Program.exe
Прошу помочь разбирающихся в VBS людей.

Iska 14-08-2018 22:24 2826520

Цитата:

Цитата pzh2393
только после того как pfgecnbncz первая »

Чего-чего-чего ;)?

Код:

Option Explicit

Dim objFSO

Dim strProgramm01
Dim strProgramm02

Dim lngProcessId


Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

strProgramm01 = objFSO.BuildPath(WScript.CreateObject("Shell.Application").NameSpace("shell:Local AppData").self.Path, "Program\Program01.exe")
strProgramm02 = "D:\Program\Program02.exe"

If objFSO.FileExists(strProgramm01) Then
        If objFSO.FileExists(strProgramm02) Then
                With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2").Get("Win32_Process")
                        If .Create(strProgramm01, objFSO.GetParentFolderName(strProgramm01), Nothing, lngProcessId) = 0 Then
                                WScript.Echo "Execute [" & strProgramm01 & "] successfully, process id is [" & CStr(lngProcessId) & "]."
                               
                                If .Create(strProgramm02, objFSO.GetParentFolderName(strProgramm02), Nothing, lngProcessId) = 0 Then
                                        WScript.Echo "Execute [" & strProgramm02 & "] successfully, process id is [" & CStr(lngProcessId) & "]."
                                Else
                                        WScript.Echo "Can't execute file [" & strProgramm02 & "]."
                                        WScript.Quit 4
                                End If
                        Else
                                WScript.Echo "Can't execute file [" & strProgramm01 & "]."
                                WScript.Quit 3
                        End If
                End With
        Else
                WScript.Echo "Can't find file [" & strProgramm02 & "]."
                WScript.Quit 2
        End If
Else
        WScript.Echo "Can't find file [" & strProgramm01 & "]."
        WScript.Quit 1
End If

Set objFSO = Nothing

WScript.Quit 0


pzh2393 15-08-2018 08:55 2826575

Цитата:

Цитата Iska
Чего-чего-чего ? »

:) очепятка..

Пы.Сы. А как убрать сообщения об идентификаторах процессов?

Iska 15-08-2018 09:07 2826580

Цитата:

Цитата pzh2393
Пы.Сы. А как убрать сообщения об идентификаторах процессов? »

Например, закомментировав вывод. Поставьте перед потребными WScript.Echo символ апострофа, наподобие:
Код:

                                        ' WScript.Echo "Execute [" & strProgramm02 & "] successfully, process id is [" & CStr(lngProcessId) & "]."
P.S. Не комментируйте все WScript.Echo подряд, иначе при банальном отсутствии файла можно будет долго гадать, почему вдруг «не работает».


Время: 14:15.

Время: 14:15.
© OSzone.net 2001-