Дождаться выполнения команды выполняемой через ShellExecute - VB
Формулировка задачи:
Вот пример кода, извените, что на VB, который вроде нормально дожидается завершения исполняемых файлов. А вот если ему подсунуть например vbs скрипт для выполнения, то он SEI.hProcess возвращает 0 и соответственно ничего не дожидается. Не подскажите как с этим бороться?
Dim lExecResult As Long
Dim SEI As SHELLEXECUTEINFO
If bSyncr Then
With SEI
.cbSize = Len(SEI)
.fMask = SEE_MASK_NOCLOSEPROCESS Or SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI
.hwnd = 0
.lpVerb = "open"
.lpFile = FilePath
.lpParameters = vbNullChar
.lpDirectory = vbNullChar
.nShow = 0
.hInstApp = 0
.lpIDList = 0
End With
lExecResult = ShellExecuteEX(SEI)
lExecResult = WaitForSingleObject(SEI.hProcess, INFINITE)
lExecResult = CloseHandle(SEI.hProcess)
Dim lExecResult As Long
Dim SEI As SHELLEXECUTEINFO
If bSyncr Then
With SEI
.cbSize = Len(SEI)
.fMask = SEE_MASK_NOCLOSEPROCESS Or SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI
.hwnd = 0
.lpVerb = "open"
.lpFile = FilePath
.lpParameters = vbNullChar
.lpDirectory = vbNullChar
.nShow = 0
.hInstApp = 0
.lpIDList = 0
End With
lExecResult = ShellExecuteEX(SEI)
lExecResult = WaitForSingleObject(SEI.hProcess, INFINITE)
lExecResult = CloseHandle(SEI.hProcess)
Решение задачи: «Дождаться выполнения команды выполняемой через ShellExecute»
textual
Листинг программы
<font color="blue">Set</font> WshShell = CreateObject(<font color="green">"WScript.Shell"</font>) ReturnValue = WshShell.Run(<font color="green">"wscrirt.exe myscript.vbs"</font>, , True)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д