C #. Comment sélectionner et copier du texte par programme à partir de l’application console?

Je veux copier la sortie complète d’une application console par programme dans le presse-papiers (afin que l’utilisateur puisse l’obtenir automatiquement sans modifier la fenêtre cmd).

Je sais comment accéder au presse-papier. Je ne sais pas comment obtenir un texte de fenêtre de console à partir de C #.

C # 3.5 / 4

Une solution de base ci-dessous (il suffit de redirect la sortie standard vers une instance de SsortingngBuilder ). Vous devrez probablement append la référence à System.Windows.Forms vous-même dans une application console.

 using System; using System.IO; using System.Text; using System.Windows.Forms; public class Redirect { [STAThread()] public static void Main() { SsortingngBuilder sb = new SsortingngBuilder(); SsortingngWriter sw = new SsortingngWriter(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) } } 

Cela donnera le stdout au presse-papier.

 dir | clip 

Où dir est juste ma commande de test …