从命令行进程读取标准输出而不使用换行符

时间:2011-12-24 15:47:53

标签: c# process redirectstandardoutput

我正在编写一个包装可执行文件的C#GUI Wrapper(由于我没有源代码,我不能修改)。我面临的问题似乎与可执行输出不以'换行符'字符结尾的事实有关。

相反,.exe开始工作并期望用户输入(s = status,q = quit等...)。

我花了很多时间研究各种方法来读取StdOut,一个用于异步读取和监听事件,另一个方法是使用单独的线程轮询StdOut和StdErr并将事件引发到UI线程,该线程正在更新文本框。

不幸的是,这两种方法似乎都不起作用,因为在这两种情况下 - 该过程直到最后一行输出(最后一行没有'换行符')才会引发事件,这只会在应用程序中显示关闭。

另外,我似乎无法通过写入它的StandardInput来向它发送命令。我遵循了禁用ShellExecute,重定向输入等的典型建议......

我尝试将字符串,字符,字符的十六进制表示形式发送为Write()和WriteLine(),这些都不起作用。

有什么想法吗?

0 个答案:

没有答案