chrismargab
Messages postés17Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention 8 septembre 2010
-
6 sept. 2010 à 22:43
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
7 sept. 2010 à 20:58
Bonjour,
J'utilise la commande "shell" pour lancer un utilitaire qui me convertit un fichier en fichier txt. Tout va bien, mais pour les longs fichiers, j'aimerai connaitre l'avancement du processus, en affichant à intervalle régulier la taille du fichier txt écrit.
Mon application attends que le processus soit fini pour continuer son exécution, et c'est là mon problème.
Comment puis je procéder pour faire lire la taille du fichier txt pendant l'exécution de mon utilitaire lancé par la commande "shell" ?
Merci d'avance.
Christian
A voir également:
Il n'y a pas de processus à l'autre extrémité du canal
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 7 sept. 2010 à 14:47
Shell renvoie le ProcessID
OpenProcess te permettra de récupérer un Process Handle et d'attendre (WaitForSingleObject) la fin de celui-ci (n'oublies pas de mettre un CloseHandle)
tu peux aussi passer par CreateProcess plutot que Shell et rediriger ainsi la Standard Output vers un Pipe qu'il te suffira de questionner pour obtenir sous la forme d'un String le texte éventuellement affiché dans la fenêtre console de ton convertisseur ; et qui contient peut etre - a toi de voir - le % de progression de la tache.
chrismargab
Messages postés17Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention 8 septembre 2010 7 sept. 2010 à 17:17
Merci, mais ça ne convient pas à ce que je cherche.
Le logiciel que je lance s'appelle hyperfile2xml.exe. Il se lance par la commande "exécuter" et fonctionne en tâche de fond, sans rien afficher à l'écran. C'est pour ça que je pensais chercher à lire la taille du fichier créé par ce logiciel pendant son exécution.
Ce qui est bizarre, c'est que la commande shell bloque le déroulement de mon application VB6 tant que le logiciel appelé n'a pas fini sa tâche.
chrismargab
Messages postés17Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention 8 septembre 2010 7 sept. 2010 à 19:41
Ne te fâche pas...
Justement, je vois que beaucoup de gens demande une astuce pour que l'appli attende que shell finisse pour continuer.
Moi, je ne veux pas que l'appli attende, et pourtant, c'est ce qu'elle fait ! Et je n'utilise que la commande shell, sans rien autour !
Mais bon, je crois que je vais faire autrement.
Plus d'un million huit cent mille lignes à traiter, ça prend du temps, alors je vais essayer de lire le fichier windev afin d'avoir moins de ligne à traiter.