2011-05-11 4 views
6

J'envoie des e-mails dans un programme comme ceci:Comment attendre par programme la commande Shell pour terminer l'exécution?

Call Shell(smtpPath, emailInput...) 

Cela fonctionne très bien, sauf si j'appelle la fonction deux fois, la fonction exécute la première fois, appelle la commande shell, la fonction se présente à nouveau, et appelle à nouveau la commande shell, mais la première commande shell n'est pas terminée, il y a donc une erreur car la deuxième commande shell essaie d'utiliser le même fichier smtp que le premier (qui est toujours utilisé).

Comment faire pour que la fonction attende jusqu'à ce que la commande shell soit terminée?

Addendum: Ou est-il possible de voir si le fichier est en cours d'utilisation et, si c'est le cas, de le mettre en veille, puis réessayer?

Répondre

5

Vous pouvez utiliser WScript.Shell, et sa méthode run:

Set objShell = CreateObject("WScript.Shell") 
result = objShell.Run(smtpPath & " " & emailInput, 0, true) 
Questions connexes