Je souhaite lancer une application externe et capturer sa sortie. C'est assez facile, en utilisant Diagnostics.Process
et son OutputStream
.Comment capturer une sortie de processus binaire en C# /. NET
Cependant, le processus que j'ai généré données binaires, que je dois saisir comme Stream
, non pas comme le texte StreamWriter
Son là un moyen d'obtenir le flux binaire brut sous-jacent?
Actuellement, je le pirater en lançant un fichier batch qui ressemble à:
myapplication | socat stdin tcp-connect:localhost:12345
Et dans mon code créer et écouter sur un socket TCP. alors que ce hack fonctionne, c'est un peu moche, et je préfère utiliser le processus externe directement.
(Une chose que je ne peux pas faire est d'utiliser des fichiers locaux, comme les données en temps réel dans sa nature)
Mais vous devez modifier le processus fils pour qu'il utilise le canal, ou bien p/invoquer 'CreateProcess' pour passer le canal comme le handle de sortie standard de l'enfant. –