Ce code s'inspire très largement du code de fredlinx (
http://www.vbfrance.com/code.aspx?id=6395).
Points communs :
-> lecture des sorties du programme par pipes
-> génération d'un évèment à chaque nouvelle sortie
-> possibilité de kill
Ajouts :
-> possibilité de définir le répertoire de travail du programme (pratique pour les exe qui génèrent des fichiers)
-> possibilité de séparer la sortie d'erreur standard stderr de la sortie standard stdout
-> possibilité d'entrer des données dans le programme (stdin) de deux façons :
- au démarrage
- à la demande du programme
-> récupération du code de sortie du processus
-> séparation éventuelle du nom de commande et des arguments
Plus simplement, ce code lance un exécutable DOS, redirige les entrées et sorties, déclenche un évènement à chaque sortie ou entrée.
Conclusion :
L'exécutable DOS cmd1 ne fait rien de spécial : il permet simplement de tester le code...(compilé avec DevCPP). Il demande des entrées, génère des sorties et génère un fichier dans le répertoire de travail.
Certaines sorties peuvent ne pas apparaitre suivant le compilateur utilisé pour l'appli DOS.
Tester sous Win XP
N'hésitez pas à commenter et à noter...
15 mars 2010 à 13:44
ret = WaitForSingleObject(hStdinLecture, 200)
'on considère que si le handle ne répond pas avant 200ms il est en attente
Ha bon? et si mon batch lance une décompression d'un fichier et que ca dure 5 secondes...
22 janv. 2009 à 22:30
Jette un oeil sur une utilisation (intéressante) que j'en ai faite
http://www.vbfrance.com/codes/VB6-MINI-CLIENT-SFTP-PUTTY-PSFTP-EXE-FRONTEND_49053.aspx
30 juin 2008 à 20:01
Le problème vient surement du fait que le programme ne flush pas la sortie standard avant de prompter pour les entrèes...avec mon programme d'exemple ca marche et avec ping aussi par exemple...par contre, c'est vrai que dans mon exemple je flush le stdout avant de prompter...
ShareVB
24 juin 2008 à 12:38
5 juin 2006 à 16:37
Merci pour ce code.
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.