2010-05-08 4 views
2

Quand j'appelle un script rebol avecEst-ce que VBA Shell n'est pas supposé être asynchrone?

call shell("rebol.exe myscript.r") 

La coque ne retourne pas jusqu'à ce que le script est terminé. Existe-t-il un moyen de forcer VBA Shell à être asynchrone?

+0

VBA Shell * est * asynchrone. S'il vous plaît fournir plus de détails, quelle est l'application, sa version, comment le code est appelé etc – GSerg

+0

Oui, je sais que c'est pourquoi je suis surpris que dans le cas ci-dessus, il ne se comporte pas comme prévu. Comment le code est donné ci-dessus et j'utilise un bouton pour le faire dans ms access 2007. Peut-être qu'il y a quelque chose de spécifique à rebolir. –

Répondre

2

Si vous voulez juste utiliser Shell fonction, essayez une autre option avec l'aide de l'API:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ 
    (ByVal hWnd As Long, ByVal lpOperation As String, _ 
    ByVal lpFile As String, ByVal lpParameters As String, _ 
    ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long 

Ceci est le code complet de ShellEx fonction:

http://www.vbaccelerator.com/codelib/shell/shellex.htm

-1

Vous devez passer un second argument pour que le programme s'exécute en arrière-plan. Here's the documentation.

call shell("rebol.exe myscript.r", vbMinimizedNoFocus) 
+0

Eh bien, je viens de l'essayer n'a pas fonctionné. Et quand je lis doc, il s'agit de mettre l'accent pas vraiment sur l'asynchronisme. –

Questions connexes