【发布时间】:2011-11-21 06:14:54
【问题描述】:
我对控制台应用程序很感兴趣,只是想知道。保存控制台窗口的当前缓冲区以供以后使用并提供某种历史导航功能的最佳方法是什么。我知道 Diagnostics 命名空间提供了读取标准输出的能力,但这只有在你重定向它的情况下,所以基本上你必须在一个看起来有点愚蠢的新窗口中运行处理所有结果。
【问题讨论】:
我对控制台应用程序很感兴趣,只是想知道。保存控制台窗口的当前缓冲区以供以后使用并提供某种历史导航功能的最佳方法是什么。我知道 Diagnostics 命名空间提供了读取标准输出的能力,但这只有在你重定向它的情况下,所以基本上你必须在一个看起来有点愚蠢的新窗口中运行处理所有结果。
【问题讨论】:
您需要读取控制台屏幕缓冲区。
几年前,我写了一系列关于从 .NET 访问控制台 API 的文章。您感兴趣的文章是Working with Console Screen Buffers。
完整的源代码可在http://mischel.com/pubs/consoledotnet/consoledotnet.zip获得。
【讨论】: