Windows 터미널 샘플 코드

Windows 터미널 리포지토리에 호스팅된 샘플 코드 중 일부를 살펴보세요. 여기에는 픽셀 셰이더 .hlsl 샘플, EchoCon ConPTY 샘플용 Win32 의사 콘솔, .NET을 대상으로 하는 GUIConsole 샘플 WPF 콘솔, 기본 PTY API 호출을 사용하는 MiniTerm 샘플 및 문자 입력을 스트리밍하면서 콘솔 이벤트를 모니터링하기 위한 ReadConsoleInputStream 데모가 포함됩니다.

픽셀 셰이더

GPU는 많은 컴퓨팅 능력을 제공하기 때문에 실시간 프랙탈 줌, 광선 추적기 및 이미지 처리와 같은 픽셀 셰이더를 사용하여 훌륭한 작업을 수행할 수 있습니다.

Windows 터미널에서 사용자가 settings.json 파일의 프로필에 experimental.pixelShaderPath 속성을 추가하여 터미널에 적용되는 픽셀 셰이더를 제공할 수 있습니다. 픽셀 셰이더는 몇 가지 제한 사항이 있는 C와 유사한 언어인 HLSL이라는 언어로 작성됩니다.

Windows 터미널 리포지토리에 제공된 여러 픽셀 셰이더 .hlsl 샘플 중 하나인 픽셀 셰이더를 사용해 보세요.

터미널 레트로 픽셀 셰이더 예제

EchoCon ConPTY 샘플 앱

이 샘플 애플리케이션에서는 다음을 통해 Win32 ConPTY(의사 콘솔)를 사용하는 방법을 보여 줍니다.

  1. 입력 및 출력 파이프 만들기
  2. CreatePseudoConsole()을 호출하여 파이프의 다른 쪽 끝에 연결된 ConPTY 인스턴스 만들기
  3. ConPTY에 연결된 ping.exe 인스턴스 생성
  4. ping.exe출력을 수신 대기하는 스레드 실행, 수신된 텍스트를 콘솔에 쓰기

Windows 터미널 리포지토리를 방문하여 이 샘플인 EchoCon ConPTY 샘플 앱을 찾습니다.

GUIConsole 샘플 앱

이 샘플 애플리케이션은 사용자 지정 WPF 콘솔의 기본 예제를 제공합니다.

이 샘플 내에서 다음을 찾을 수 있습니다.

  • GUIConsole.WPF: .NET 4.6.1을 대상으로 하는 WPF 애플리케이션으로, 콘솔 역할을 하고 기본 콘솔을 계속 표시하는 단일 WPF 창을 만듭니다.

  • .NET Standard 2.0 라이브러리인 GUIConsole.ConPTY는 콘솔 생성과 의사 콘솔 동작을 처리합니다. Terminal.cs 파일에는 WPF 애플리케이션이 상호 작용하는 공개적으로 표시되는 부분이 포함되어 있습니다. Terminal.cs 콘솔에서 읽고 쓸 수 있는 다음 두 가지를 노출합니다.

    • ConsoleOutStream: pseudoconsole의 출력 파이프에 연결된 FileStream입니다. 이 스트림은 VT100을 출력합니다.
    • WriteToPseudoConsole(문자열 입력): 지정된 문자열을 가져와서 입력 파이프라인을 통해 의사 콘솔에 기록하는 메서드입니다. 이 메서드는 VT100을 허용합니다.

Windows 터미널 리포지토리를 방문하여 GUIConsole 샘플을 찾습니다.

MiniTerm 샘플 앱

이 실험적 터미널은 Microsoft의 PTY API를 사용하는 기본 API 호출("실제" 사용용이 아님)을 보여 줍니다. C#으로 작성되었으며 네이티브 코드 예제를 기반으로 합니다.

Windows 터미널 리포지토리를 방문하여 이 샘플인 MiniTerm을 찾습니다.

ReadConsoleInputStream 데모

이 데모에서는 콘솔에서 문자 입력 보기를 동시에 스트리밍하면서 마우스, 메뉴, 포커스, 버퍼 또는 뷰포트 크기 조정과 같은 콘솔 이벤트의 비동기 모니터링을 보여 줍니다. 이 기능은 VT100 스트림 및 ConPTY로 작업할 때 특히 유용합니다.

Windows 터미널 리포지토리를 방문하여 다음 데모를 찾습니다. ReadConsoleInputStream 데모.