2010-04-26 26 views
0

J'ai un programme de console sur fenêtres (une version compilée de boucle ligne de commande) dans laquelle vous pouvez écrire des commandes et un retour. Comment puis-je envoyer des commandes à cette application console et renvoyer le résultat à VB6? Je sais que vous pouvez le faire avec les commandes DOS avec Windows Script Host mais comme vous voyez les commandes que je veux exécuter ne sont pas dans command.execommandes d'envoi à un programme de console de Visual Basic 6

Merci!

Répondre

0

Domingo -

Eh bien, je suppose que puisque vous avez mentionné, vous savez comment utiliser la bibliothèque de WSH. La seule autre information dont vous avez besoin est la chaîne pour exécuter la commande que vous voulez. Vous pouvez exécuter des commandes DOS avec cette chaîne dans Windows 95/98/Me:

Dim sMyCommandLine As String 

sMyCommandLine = "command.exe /c MYCOMMAND" 

Cependant, il semble plus probable que vous utilisez un système d'exploitation basé sur NT tel que Windows NT, 2000, XP, Vista ou 7, auquel cas, vous devez utiliser:

sMyCommandLine = "cmd.exe /c MYCOMMAND" 
2

Vous pouvez utiliser l'objet ActiveX Microsoft.XMLHTTP pour faire des requêtes HTTP, comme ceci:

Set request = CreateObject("Microsoft.XMLHTTP") 
request.open "POST", url, false 
request.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
request.send postData 
response = request.responseText 
+0

désolé comme je l'ai dit, je veux utiliser l'application console spécifique j'ai – DomingoSL

+1

Pourquoi? Vous devriez être capable de faire n'importe quoi en utilisant XMLHTTP, et cela devrait être plus rapide. – SLaks

+0

AFAIK, XMLHttp ne supporte que le protocole HTTP. Curl peut utiliser d'autres protocoles. –

0

Vous devriez être en mesure d'exécuter cette chose boucle comme un processus enfant, réoriente ses E/S standard cours d'eau pour les tuyaux anonymes . Cependant, rien dans VB6 ne supporte directement cela. L'une des façons est d'utiliser les mêmes choses que dans un script WSH en ajoutant une référence à Windows Script Host Object Model. Une autre approche nettoyante qui ne produit pas de fenêtre de console implique un certain nombre d'appels d'API pour créer le processus enfant, le gérer et lire/écrire les canaux anonymes dans votre programme VB6. C'est plus de travail si vous n'avez pas créé un composant pour le faire déjà.

0

vous pouvez utiliser la fonction Shell pour démarrer l'application de la console, mais il ne reviendra pas le résultat du processus de l'enfant - le soi-disant Errorlevel dans les scripts de traitement par lots.

Pour un remplacement bloquant de Shell vous pouvez check out ShellWait function posted here.