C#异步跟踪exe输出并输出到RichTextBox

来源:互联网 发布:线切割编程软件win7 编辑:程序博客网 时间:2024/06/03 19:21

最近尝试完成一项任务,即是使用C#做一个粗糙的界面,然后使用C++做计算部分并生产exe;然后使用C#调用exe。

生产的exe会有一些控制台的输出,希望能够在控制台上输出一句,界面程序就能获取到这一行的字符串并将其输出到RichTextBox中,从而获取当前的处理进程。

说了这么多,起始就是:C#启动控制台程序并实时输出。

由于目前尚未获得原博主的转帖许可,只粘贴处博客处出,各位可移步:http://blog.csdn.net/ares1986/article/details/6364561 了解详情,非常感谢该博主提供的代码。

一下我将展示一下我的结果:

首先使用C++写一个helloworld.exe,每间隔一秒输出一行“Hello World!";


然后使用c#创建一个界面程序,如下:


不要嫌弃其长相啦,只是为了说明问题而已。

运行情况就是在RichTextBox中每隔一秒输出一行Hello World!

实验成功!

源代码百度网盘地址:http://pan.baidu.com/s/1dDg6VhJ。

我是在Vs2010平台下完成的。



最后总结一下于此相关的另外三个问题:

一:当exe的输出语句是用printf输出的时候不能够被获取,只能使用cout。已经测试过,读者也可以自行测试,目前还不知道为什么。

二:保持RichTextBox光标总是在输出行,只需要修改属性将HideSelection属性设置为false。

三:RichTextBox的换行符是”\r\n“;


0 0