如何从.NET应用程序调用控制台应用程序并捕获控制台中生成的所有输出?
(请记住,我不想先将信息保存在文件中,然后重新保存,因为我希望将其作为实时信息接收.)
我需要从控制台中的特定位置读取文本,例如5,5.
如果我需要写到这个位置,它只会是:
Console.SetCursorPosition(5, 5);
Console.Write("My text");
Run Code Online (Sandbox Code Playgroud)
有什么方法可以用类似的方式阅读吗?
只是为了澄清:我不想停止接受用户的输入,即使输入不是来自用户,也不是先前打印出来的东西.我真的想要某种:Console.GetCharAtLocation(5,5)或类似的东西.
我正在产生外部控制台应用程序并使用异步输出重定向.
如此SO帖子所示
我的问题是,在得到OutputDataReceived事件通知之前,生成的进程似乎需要产生一定量的输出.
我想尽快收到OutputDataReceived事件.
我有一个简单的重定向应用程序,这里有一些观察:
1.当我调用一个简单的'while(true)print("X");' 控制台应用程序(C#)我立即收到输出事件.2.当我调用3d派对应用程序时,我试图从命令行换行,我看到逐行输出.
3.当我从裸骨包装器中调用该3d派对应用程序时(参见1) - 输出以块(约一页大小)的形式出现.
该应用内部会发生什么?
仅供参考:有问题的应用程序是"USBee DX数据Exctarctor(异步总线)v1.0".