Auf Englisch lesen

Freigeben über


Windows-Terminal-Beispielcode

Sehen Sie sich einige der Beispiele von Code aus dem Windows-Terminal Repository an, z. B. Pixelshader-HLSL-Beispiel, ein EchoCon ConPTY-Beispiel für eine Win32-Pseudokonsole, eine WPF-Beispielkonsole in GUIConsole, die auf .NET abzielt, ein MiniTerm-Beispiel, das grundlegende PTY-API-Aufrufe verwendet und eine ReadConsoleInputStream-Demo zur Überwachung von Konsolenereignissen beim Streaming von Zeicheneingaben.

Pixelshader

Schon allein aufgrund der schieren Rechenleistung in GPUs können Sie mit Pixelshadern großartige Dinge tun, z. B. Fraktalzoom in Echtzeit, Ray Tracer und Bildverarbeitung.

Windows-Terminal ermöglicht es Benutzern, einen Pixelshader zur Verfügung zu stellen, der durch Hinzufügen der Eigenschaft experimental.pixelShaderPath zu einem Profil in Ihrer settings.json-Datei auf das Terminal angewendet wird. Pixelshader werden in einer Sprache namens HLSLgeschrieben, einer C-ähnlichen Sprache mit einigen Einschränkungen.

Probieren Sie eines von mehreren Pixelshader-HLSL-Beispielen aus, die im Windows-Terminal-Repository bereitgestellt werden: Pixelshader.

Terminal Retro Pixel Shader sample

EchoCon ConPTY-Beispiel-App

Diese Beispielanwendung veranschaulicht die Verwendung der Win32-Pseudokonsole (ConPTY) durch:

  1. Erstellen einer Eingabe- und einer Ausgabepipe
  2. Aufrufen von CreatePseudoConsole(), um eine ConPTY-Instanz zu erstellen, die an das andere Ende der Pipes angefügt ist
  3. Erstellen einer Instanz von „ping.exe“ in Verbindung mit der ConPTY-Instanz
  4. Ausführen eines Threads, der die Ausgabe von „ping.exe“ überwacht und empfangenen Text in die Konsole schreibt

Besuchen Sie das Windows-Terminal-Repository, um sich dieses Beispiel anzuschauen: EchoCon ConPTY-Beispiel-App.

GUIConsole-Beispiel-App

Diese Beispielanwendung enthält ein Beispielgerüst einer benutzerdefinierten WPF-Konsole.

In diesem Beispiel finden Sie:

  • GUIConsole.WPF: eine WPF-Anwendung für .NET 4.6.1, die ein einzelnes WPF-Fenster erstellt, das als Konsole fungiert und dafür sorgt, dass die zugrunde liegende Konsole sichtbar bleibt.

  • GUIConsole.ConPTY: eine .NET Standard 2.0-Bibliothek, die die Erstellung der Konsole übernimmt und Pseudokonsolenverhalten ermöglicht. Die Datei „Terminal.cs“ enthält die öffentlich sichtbaren Teile, mit denen die WPF-Anwendung interagiert. „Terminal.cs“ macht zwei Dinge verfügbar, die das Lesen aus und Schreiben in die Konsole ermöglichen:

    • ConsoleOutStream: ein FileStream, der mit der Ausgabepipe der Pseudokonsole assoziiert ist. Gibt VT100 aus.
    • WriteToPseudoConsole(Zeichenfolgeneingabe): Eine Methode, die die gegebene Zeichenfolge über die Eingabepipe in die Pseudokonsole schreibt. Akzeptiert VT100.

Besuchen Sie das Windows-Terminal-Repository, um sich dieses Beispiel anzuschauen: GUIConsole.

MiniTerm-Beispiel-App

Dieses experimentelle Terminal veranschaulicht grundlegende API-Aufrufe (nicht für die „reale“ Verwendung bestimmt) mithilfe der PTY-APIs von Microsoft. Geschrieben in C# und stark auf den nativen Codebeispielen basierend.

Besuchen Sie das Windows-Terminal-Repository, um sich dieses Beispiel anzuschauen: MiniTerm.

ReadConsoleInputStream-Demo

Demo der asynchronen Überwachung von Konsolenereignissen (z. B. Maus, Menü, Fokus, Puffer-/Viewportgröße ändern), während gleichzeitig die Zeicheneingabeansicht von der Konsole gestreamt wird. Ein besonders nützliches Feature bei der Arbeit mit VT100-Streams und ConPTY.

Besuchen Sie Windows-Terminal-Repository, um sich diese Demo anzuschauen: ReadConsoleInputStream-Demo.