Erfassen Sie farbige Konsolenausgaben in der WPF-Anwendung

8

Ähnlich wie diese Frage , außer dass das Konsolenprogramm umschlossen ist in der WPF-Anwendung erzeugt farbige Ausgabe, so wäre es schön, wenn ich sowohl die Farbe als auch den Text erfassen könnte.

Dies ist mein erstes WPF-Programm und ich bin mir nicht sicher, wie ich das richtige Steuerelement finden / ändern soll. Momentan verwende ich nur eine TextBox, die funktioniert, aber nur reinen Text erfasst.

Update: Ich habe versucht, RichTextBox zu verwenden:

%Vor%

Leider zeigte es nur Klartext.

    
si618 07.10.2009, 02:50
quelle

1 Antwort

13

Wenn ich verstehe, was Sie richtig machen wollen, möchten Sie eine Legacy-App, die auf der Konsole ausgeführt wird, screenen und die Konsole in einem Steuerelement in Ihrer WPF-App über yourprocess.StandardOutput ausgeben lassen.

Die Farbdaten (und Formatierung), die von der Konsole kommen, sind ANSI. Dies wird in Form von Steuerzeichen im umgeleiteten Konsolentext angezeigt, die als erweiterte ASCII-Zeichen und -Ziffern angezeigt werden. Sie benötigen ein ANSI-Interpreter-Steuerelement, um dieses in Farbdaten umzuwandeln. Ich weiß, dass es mehrere ANSI-Terminalsteuerungen gibt, die leicht angepasst werden können - diese zum Code Project kann die ANSI-Formatierung verarbeiten, es handelt sich jedoch um ein vollständiges ANSI-Terminal zur Verarbeitung einer Verbindung. Möglicherweise müssen Sie den terminalen Teil des Codes durch etwas ersetzen, das die von yourprocess.StandarOutput.ReadToEnd() zurückgegebene Zeichenfolge anzeigen kann.

Hier sind die ANSI / VT100-Steuercodes , die Sie benötigen, wenn Sie einen eigenen Formatierer schreiben möchten.

    
ดาว 09.10.2009, 01:37
quelle