C#。 如何以编程方式从控制台应用程序中选择和复制文本?

我想以编程方式将控制台应用程序的整个输出复制到剪贴板中(这样用户可以自动获取它而无需修改cmd窗口)。

我知道如何访问剪贴板。 我不知道如何从C#获取控制台窗口文本。

C#3.5 / 4

下面的一个基本解决方案(只是将标准输出重定向到StringBuilder实例)。 您可能需要在控制台应用程序中自己添加对System.Windows.Forms的引用。

 using System; using System.IO; using System.Text; using System.Windows.Forms; public class Redirect { [STAThread()] public static void Main() { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); Console.SetOut(sw); // redirect Console.WriteLine("We are redirecting standard output now..."); for (int i = 0; i < 10; i++) { Console.WriteLine(i); } sw.Close(); StringReader sr = new StringReader(sb.ToString()); string completeString = sr.ReadToEnd(); sr.Close(); Clipboard.SetText(sb.ToString()); Console.ReadKey(); // just wait... (press ctrl+v afterwards) } } 

这将stdout提供给剪贴板。

 dir | clip 

dir只是我的测试命令……