Exécutez la ligne de commande interactive exe à l'aide de c #
Je peux exécuter une ligne de commande de processus à l'aide process.start()
.
Je peux fournir des commentaires à l'aide de l'entrée standard. Après que, lorsque le processus de demande la saisie de l'utilisateur de nouveau, comment mon programme connaître et de passer l'entrée à cet exe?
source d'informationauteur rajshades | 2010-07-22
Vous devez vous connecter pour publier un commentaire.
Il y a un exemple ici qui ressemble à ce dont vous avez besoin, à l'aide de
Process.StandardInput
et unStreamWriter
.espère que ça aide
Si je comprends bien je pense que vous devriez être en mesure de le faire par la redirection de l'Entrée/Sortie Standard à l'aide de RedirectStandardOutput et RedirectStandardInput.
Le WinSCP projet est un exemple C# pour savoir comment communiquer avec lui à l'aide de cette façon. Vous pouvez le trouver ici: SFTP transferts de fichiers .NET (même si ce n'est qu'un exemple recueille la sortie sans l'utiliser, mais la technique doit être la même.)
Vous souhaitez rechercher de la CIB. Robert a montré ci-dessus, le
Process
classe .NET va vous aider. Mais spécifiquement pour votre problème (comment savoir quand à l'écriture de données): Vous ne pouvez pas. Pas de façon générique.Si vous connaissez la saisie (par exemple, "yyy"), vous pouvez fournir dans le
STDIN
du processus créé. Vous n'avez pas à attendre pour le programme de demander cette information: Il suffit de lire à partir deSTDIN
quand il veut des données.Si vous avez besoin de traiter les programmes de sortie de décider quoi écrire à
STDIN
essayez de lire le processusSTDOUT
. Vous pourriez avoir des problèmes avec le rinçage, mais...