Как программно дождаться окончания работы команды оболочки? - PullRequest
6 голосов
/ 11 мая 2011

Я отправляю электронные письма в программе, например так:

Call Shell(smtpPath, emailInput...)

Это прекрасно работает, за исключением того, что если я вызываю функцию дважды, функция запускается в первый раз, вызывает команду оболочки, затем функция запускаетсяи снова вызывает команду оболочки, но первая команда оболочки не завершена, поэтому возникает ошибка, поскольку вторая команда оболочки пытается использовать тот же файл smtp, что и первый (который все еще используется).

Как заставить функцию ждать, пока не завершится выполнение команды оболочки?

Добавление: Или есть способ узнать, используется ли файл, и если это так, sleepэто, тогда попробуйте еще раз?

1 Ответ

6 голосов
/ 11 мая 2011

Вы можете использовать WScript.Shell , и это run метод:

Set objShell = CreateObject("WScript.Shell")
result = objShell.Run(smtpPath & " " & emailInput, 0, true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...