Терминал Windows: пример кода
Изучите некоторые из примеров кода, размещенных в репозитории Терминала Windows, включая примеры .hlsl пиксельных шейдеров, пример псевдоконсоли Win32 EchoCon ConPTY, пример консоли WPF GUIConsole для .NET, пример MiniTerm с использованием базовых вызовов API PTY, а также демонстрацию ReadConsoleInputStream для мониторинга событий консоли во время потоковой передачи ввода символов.
Шейдеры пикселей
Благодаря огромной вычислительной мощности графических процессоров с помощью пиксельных шейдеров можно делать потрясающие вещи, например фрактальное масштабирование в реальном времени, трассировку лучей и обработку изображений.
Терминал Windows позволяет пользователям предоставлять пиксельный шейдер, применяемый к терминалу, путем добавления свойства experimental.pixelShaderPath
в профиль в файле settings.json. Пиксельные шейдеры написаны на языке, HLSL, C-подобном языке с некоторыми ограничениями.
Попробуйте один из нескольких примеров .hlsl пиксельных шейдеров, представленных в репозитории Windows Terminal: пиксельные шейдеры.
Пример приложения EchoCon ConPTY
В этом примере приложения показано, как использовать псевдоконсоль Win32 (ConPTY), выполнив следующие операции:
- Создание входного и выходного канала.
- Вызов CreatePseudoConsole() для создания экземпляра ConPTY, подключенного к другому концу каналов.
- Создание экземпляра ping.exe, подключенного к ConPTY.
- Запуск потока, который прослушивает вывод ping.exe, записывая полученный текст в консоль.
Посетите репозиторий Терминала Windows, чтобы ознакомиться с этим примером: пример приложения EchoCon ConPTY.
Пример приложения GUIConsole
Это пример приложения представляет структуру настраиваемой консоли WPF.
В этом примере вы найдете:
GUIConsole.WPF — приложение WPF для .NET 4.6.1, которое создает одно окно WPF, которое действует как консоль и сохраняет видимую базовую консоль.
GUIConsole.ConPTY — библиотека .NET Standard 2.0, которая поддерживает создание консоли и поведение псевдоконсоли. Файл Terminal.cs содержит общедоступные компоненты, с которыми будет взаимодействовать приложение WPF. Terminal.cs предоставляет два компонента, которые позволяют выполнять чтение из консоли и запись в нее:
ConsoleOutStream
— FileStream подключаетя к выходному каналу псевдоконсоли. При этом выводится VT100.WriteToPseudoConsole
(ввод строки) — метод, который берет указанную строку и записывает ее в псевдоконсоль через свой канал ввода. При этом принимается VT100.
Посетите репозиторий Терминала Windows, чтобы ознакомиться с этим примером: GUIConsole.
Пример приложения MiniTerm
Этот экспериментальный терминал демонстрирует основные вызовы API (не предназначенные для реального использования) с применением API-интерфейсов PTY от корпорации Майкрософт. Он написан на C# и сильно зависит от примеров машинного кода.
Посетите репозиторий Терминала Windows, чтобы ознакомиться с этим примером: MiniTerm.
Демонстрация ReadConsoleInputStream
Демонстрация асинхронного мониторинга событий консоли (таких как операции с помощью мыши и меню, изменение фокуса, изменение размера буфера или области просмотра) при одновременной потоковой передаче представления ввода символов из консоли. Эта функция особенно полезна при работе с потоками VT100 и ConPTY.
Посетите репозиторий Терминала Windows, чтобы ознакомиться с этой демонстрацией: демонстрация ReadConsoleInputStream.
Windows Terminal
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по