Ukázkový kód terminálu Windows

Prozkoumejte některé ukázkové kódy hostované v úložišti terminálu Windows, včetně ukázek Pixel Shader .hlsl, ukázky EchoCon ConPTY Win32, ukázkové konzolyWPF GUIConsole zaměřené na .NET, ukázku MiniTerm pomocí základních volání rozhraní PTY API a ukázky ReadConsoleInputStream pro monitorování událostí konzoly při streamování vstupu znaků.

Pixelové shadery

Vzhledem k tomu, že GPU poskytují tolik výpočetního výkonu, můžete dělat skvělé věci s pixelovými shadery, jako je fraktal zoom v reálném čase, ray tracery a zpracování obrázků.

Windows Terminal umožňuje uživatelům použít pixel shader, který je aplikován na terminál, vložením vlastnosti experimental.pixelShaderPath do profilu v souboru settings.json. Shadery pixelů jsou napsané v jazyce s názvem HLSL, jazyk podobný jazyku C s určitými omezeními.

Vyzkoušejte jednu z několika ukázek pixelového shaderu .hlsl, které jsou k dispozici v úložišti terminálu Windows: Pixel Shadery.

Ukázka pixelového shaderu retro terminálu

Ukázková aplikace EchoCon ConPTY

Tato ukázková aplikace ukazuje, jak používat pseudo konzolu Win32 (ConPTY) podle:

  1. Vytvoření vstupního a výstupního kanálu
  2. Volání CreatePseudoConsole() pro vytvoření instance ConPTY připojené k druhému konci kanálů
  3. Vytvoření instance ping.exe připojené k ConPTY
  4. Spuštění vlákna, které naslouchá výstupu z ping.exe, zápis přijatého textu do konzoly

Pokud chcete najít tuto ukázku, navštivte úložiště terminálu Windows: Ukázková aplikace EchoCon ConPTY.

Ukázková aplikace GUIConsole

Tato ukázková aplikace poskytuje ukázkovou kostru vlastní konzoly WPF .

V této ukázce najdete:

  • GUIConsole.WPF: aplikace WPF, která cílí na .NET 4.6.1, která vytvoří jedno okno WPF, které funguje jako konzola a udržuje základní konzolu viditelné.

  • GUIConsole.ConPTY: knihovna .NET Standard 2.0, která zpracovává vytvoření konzoly a umožňuje pseudokonsole chování. Soubor Terminal.cs obsahuje veřejně viditelné části, se kterými aplikace WPF pracuje. Terminal.cs zpřístupňuje dvě věci, které umožňují čtení z konzoly a zápis do konzoly:

    • ConsoleOutStream: FileStream je připojen k výstupnímu kanálu pseudokonsole. Tento proud vypíše ve formátu VT100.
    • WriteToPseudoConsole(řetězcový vstup): metoda, která vezme daný řetězec a zapíše ho do pseudokonsole prostřednictvím vstupního kanálu. Tato metoda přijímá VT100.

Pokud chcete najít tuto ukázku: GUIConsole, navštivte úložiště Terminálu Windows.

Ukázková aplikace MiniTerm

Tento experimentální terminál ukazuje základní volání rozhraní API (není určeno pro skutečné využití) pomocí rozhraní PTY API od Microsoftu . Je napsaná v jazyce C# a je silně založená na nativních příkladech kódu.

Pokud chcete najít tuto ukázku: MiniTerm, navštivte úložiště Terminálu Windows.

ReadConsoleInputStream Ukázka

Tato ukázka ukazuje asynchronní monitorování událostí konzoly, jako je myš, nabídka, zaměření a změna velikosti vyrovnávací paměti nebo oblasti zobrazení, a zároveň streamuje zobrazení vstupu znaků konzole. Tato funkce je zvlášť užitečná při práci s datovými proudy VT100 a ConPTY.

Navštivte úložiště Terminálu windows a najděte tuto ukázku: ReadConsoleInputStream Demo.