Redirection des Output d'une application console (Application.HandleMessage) [Résolu]

cs_nader 11 Messages postés vendredi 4 avril 2003Date d'inscription 19 juillet 2010 Dernière intervention - 6 août 2006 à 00:44 - Dernière réponse : cs_nader 11 Messages postés vendredi 4 avril 2003Date d'inscription 19 juillet 2010 Dernière intervention
- 25 août 2006 à 21:17
Je me suis lancé dans la réalisation d'une application console qui redirige les Output d'une autre application console et qui lui envoi des commandes,...puisque je redirige les Output de celle ci vers mon application console parente ( Writeln(output) simplement ) je ne peut pas utiliser
 " Application.HandleMessage " pour eviter le plantage lors de la lecture de la pipe car j'utilise une application console sans l'unité Forms qui contient les méthodes de TApplication ( Application.HandleMessage ) ,existe-il un bout de code qui pourrait remplacer ("Application.HandleMessage") en utilisant que " WINDOWS "
PS: j'avais éssayer d'utiliser lApi " WaitForSingleObject " sans succé...l'application plante aprés avoir executer l'application enfante et recue le premier OutPut qui est convenablement affiché mais juste aprés l'application plante,je suis carrément bloqué....merci d'avance pour vos réponses...
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
cs_Forman 663 Messages postés samedi 8 juin 2002Date d'inscription 6 avril 2010 Dernière intervention - 8 août 2006 à 02:20
3
Merci
Essaie de mettre le code qui lit dans la console dans un thread séparé du thread principal. J'ai un bout de code qui fait ça dans l'unité "ConsoleThread.pas" de mon source ici: http://www.delphifr.com/codes/ACCEDER-SON-ORDINATEUR-DEPUIS-IMPORTE-QUELLE-MACHINE-CONNECTEE_27224.aspx


Ceci dit, pourquoi est-ce vraiment si important qu'une application console ne se bloque pas tant que le traitement n'est pas fini? Par définition, dans une application console, il n'y a pas d'interface graphique, donc si ça bloque pendant le traitement, ce n'est pas grave...

Merci cs_Forman 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_Forman
cs_nader 11 Messages postés vendredi 4 avril 2003Date d'inscription 19 juillet 2010 Dernière intervention - 25 août 2006 à 21:00
0
Merci
Merci Forman, je vient de lire ta réponse, et je pense qu'une bonne maitrise des section critique peut résourdre le problème, j'ai pa encor essayer d'utiliser l'unité ConsoleThread, mais dés ma première lecture de l'unité,ya déga du boulot sur les sections critiques.la code clean et clair pour comprendre la base de la redirection des entrées/sorties pour ceux qui sont interréssé par le sujet !
Enfin une petite remarque, Forman ,té l'un des rares a répondre convenablement, ya souvent des membres qui viennent ajouter des réponses qui serve qu'à faire fuire les membres du forum: se moquer des débutant,prendre têtes,fouiller dans les message qu'ils postent...et franchemen j'hésite a poster des sources ou des messages pour éviter ceci !
 
Merci encore !
Commenter la réponse de cs_nader
cs_nader 11 Messages postés vendredi 4 avril 2003Date d'inscription 19 juillet 2010 Dernière intervention - 25 août 2006 à 21:17
0
Merci
En fetes j'avais pas répondu a tes questions, mon problème est que je voulais utiliser uniquement l'API Windows ,donc me trouver de quoi remplacer les StringLists et la fonction Application.ProcessHandle pour eviter l'utilisation de la classe TApplication et parsuite l'unité Forms ( exe tro volumineux) , j'avais coder un composant trés basique qui fonctionnait mais qui ne peut se passer de la fonction Application.ProcessHandle car il plantait sans cesse !  c'est pour cela que je voulais essayer de trouver un code qui pourrait la remplacer en utilisant l'api win. dans l'api win ya des fonctions qui gèrent les sections critiques et ce là peut eviter le plantage. j'essayerai de coder une classe encore plus compacte.
Commenter la réponse de cs_nader

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.