Recopier l'output d'un fichier executable

abessoloclaude 40 Messages postés lundi 14 décembre 2015Date d'inscription 11 janvier 2016 Dernière intervention - 4 janv. 2016 à 22:19 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention
- 5 janv. 2016 à 11:00
Bonjour,



je souhaiterais savoir comment recuperer le resultat d'un fichier executable que j'ai lancé avec la commande shell. jutilise VBscript .
je vous ai envoye le resultat du fichier exécuté.
merci
Afficher la suite 

Votre réponse

5 réponses

abessoloclaude 40 Messages postés lundi 14 décembre 2015Date d'inscription 11 janvier 2016 Dernière intervention - 5 janv. 2016 à 08:46
0
Merci
personne ne sait toujours pas comment recuperer ce qui s'affcihe dans le fichier exécutable que jai lancé?
jai essayé plusieurs fois mais ca ne marche pas. je souhaiterais mettre le texte dans un textebox,jutilise vba
jordane45 21674 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 juillet 2018 Dernière intervention - 5 janv. 2016 à 10:36
Bonjour,

jutilise vba


Alors que dans l’énoncé de la question :

jutilise VBscript .


Faudrait savoir ....... !!!!!!!
Commenter la réponse de abessoloclaude
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 5/01/2016 à 10:21
0
Merci
Bonjour,
Et tout cela depuis ...VBS....
Je ne crois que tu n'as pas la moindre idée de ce que sont des processus, des mécanismes, des fils distincts.
Alors : ou l'exécutable que tu appelles accepte l'automation (= a été conçu pour) et tu pourras dialoguer avec lui, le piloter', etc ... ou il ne l'accepte pas et tu n'arriverais (et encore ... pas toujours) à de telles fins que d'une manière si complexe (utilisation de plusieurs fonctions de l'API de Windows) qu'elle te "coûterait" probablement plus cher que d'écrire toi-même, dans ton appli, les instructions qui aboutiraient au résultat de l'exécutable que tu veux "utiliser" !

Pour que tu comprennes : comment ferais-tu pour savoir où en est exactement la livraison, par le chauffeur C de l'entreprise E, d'un colis que tu as demandé à l'entreprise E de livrer à l'adresse A, si le chauffeur C ne rend compte qu'à l'entreprise E et que l'entreprise E n'a rien prévu pour t'en rendre compte, à toi ?
Voilà ...
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
abessoloclaude 40 Messages postés lundi 14 décembre 2015Date d'inscription 11 janvier 2016 Dernière intervention - 5 janv. 2016 à 10:35
0
Merci
recuperer l'output d'un fichier exec avec vbscript:

set objShell = CreateObject("WScript.Shell" )
commande = "c:\tmp\essai.bat
Set objExecObject = objShell.Exec(commande)

Do While Not objExecObject.StdOut.AtEndOfStream
strText = objExecObject.StdOut.ReadLine()
...
Loop
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 5 janv. 2016 à 11:00
C'est vraiment malheureux à dire, mais voilà où conduisent les imprécisions :
Ce n'est pas du tout :
le resultat d'un fichier executable

ni
ce qui s'affcihe dans le fichier exécutable

mais ce qu'un batch affiche en exécution sur la console !
Ta solution est alors une simple redirection.
Sous VBA (puisque tu dis maintenant développer sous VBA), un tel "pipe" s'écrit ainsi (exemple) ===>>
Shell ("D:\toto.bat > D:\titi.txt")

Bref ...

Ainsi par exemple soit toto.bat :
@echo off
echo blabla
exit


Shell ("D:\toto.bat > D:\titi.txt")

écrira "blabla" dans D:\titi.txt, que tu pourras lire à ta guise avec Open

Quelle "affaire" ... pour finalement utiliser ... du DOS

EDIT : juste pour ton information (pour le cas où cela t'aurait échappé) maintenant :
l'utilisation de VBS (y compris donc depuis VBA) est à éviter si tu dois distribuer ton application. Des raisons de sécurité ont en effet conduit un nombre important d'utilisateurs (dont moi-même) à inhiber VBS sur leur machine.
EDIT 2 : je ne sais pas à quoi te sert l'affichage de l'exécution de ton Batch.
A tout hasard, donc (notamment dans l'éventualité de la conservation en mémoire des résultats successifs) : Le remplacement du signe ">" de redirection (dans le code montré) par le signe ">>" aurait pour résultat d'ajouter un résultat en fin du fichier texte, sans donc y supprimer les résultats antérieurs.
Commenter la réponse de abessoloclaude

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.