헤드 디바이스용 화상 키보드

Windows 10 IoT Core 버전 1809에서 화상 키보드 구성 요소가 크게 변경되었으며 더 나은 성능을 위해! 이제 IoT Core는 데스크톱 버전의 Windows와 동일한 터치 키보드 구성 요소를 사용합니다.

새 기능

새로운 키보드 구현은 헤드 디바이스 개발에 다음과 같은 이점을 제공합니다.

기능 패키지

프로토타입(개발) 이미지의 경우 화상 키보드 기능이 이미 포함되어 있지만 Windows 디바이스 포털의 디바이스 설정에서 사용하도록 설정해야 합니다.

상용화를 위해 다음 선택적 기능 패키지는 화상 키보드를 이미지에 추가합니다.

  • IOT_SHELL_ONSCREEN_KEYBOARD
  • IOT_SHELL_ONSCREEN_KEYBOARD_FOLLOWFOCUS

IoT Core 기능에 대한 자세한 내용은 IoT Core 기능 목록IoT Core 제조 가이드를 참조하세요.

Windows 키보드 언어 레이아웃

이 릴리스에서 지원되는 언어 레이아웃은 데스크톱 Windows 버전에서 사용할 수 있는 전체 집합을 포함하도록 확장되었습니다. 사용자가 다양한 언어 레이아웃 중에서 선택할 수 있도록 하려면 일반적으로 애플리케이션의 설정 영역에 선택 UI를 포함합니다. 다음 API는 애플리케이션이 화상 키보드에서 사용할 언어를 설정할 수 있도록 하기 위해 제공됩니다.

Windows.Globalization.Language.TrySetInputMethodLanguageTag

이 API의 예는 LanguageManager.cs 파일의 IoTCoreDefaultApp 샘플 애플리케이션에서 확인할 수 있습니다.

입력 범위 지원

이전 릴리스에서는 EmailSmtpAddress 입력 scope만 사용할 수 있었습니다. 이 릴리스에서는 입력 범위의 전체 집합을 사용할 수 있습니다. 다음 항목에서는 입력 범위 및 애플리케이션에서 입력 범위를 사용하는 방법에 대해 설명합니다.

입력 범위를 사용하여 터치 키보드 변경

IME(입력기)

이 릴리스에서는 중국어, 일본어 및 한국어와 같은 키보드의 키보다 그래프가 더 많은 언어에 필요한 입력 방법 편집기를 제공합니다.

가려지 않은 텍스트 입력 필드

이전 릴리스에서 터치 키보드는 사용자가 입력한 내용을 볼 수 없도록 포커스가 있는 텍스트 필드를 가리게 할 수 있습니다. 이 릴리스에서는 터치 키보드로 더 이상 가려지지 않도록 텍스트 필드를 보기로 자동으로 스크롤하여 이 문제를 해결합니다.

받아쓰기 모드

입력 언어가 기본값인 OS 언어로 설정되면 음성 인식 입력 기능을 사용할 수 있습니다. 키보드에 받아쓰기 단추를 표시하려면 사용자 인터페이스 구성에 대한 다음 섹션을 참조하세요.

사용자 인터페이스 구성

화상 키보드는 사용자 인터페이스에 대해 몇 가지 구성 가능한 옵션을 제공합니다. 레지스트리를 통해 구성됩니다. 개발하는 동안 PowerShell 또는 SSH(Secure Shell)를 사용할 수 있습니다. OEM 이미지를 만들기 위해 레지스트리 값을 설정하는 기본 메커니즘은 여기에 설명된 파일입니다 OEMInput.xml .

런타임 사용자 지정

참고

여기에 설명된 대부분의 레지스트리 설정은 화상 키보드가 표시되는 동안 적용됩니다. 이렇게 하면 개발 중에 다양한 설정 값 조합을 쉽게 시도하여 결과 변경 내용을 실시간으로 즉시 확인할 수 있습니다. 설정이 즉시 적용되지 않는 경우 키보드 UI의 변경 내용을 보려면 디바이스를 다시 부팅해야 합니다.

키보드 높이

기본적으로 터치 키보드는 화면 높이의 45% 이하를 사용합니다. 크기 및 해상도에 따라 디바이스에서 너무 크거나 작게 나타날 수 있습니다. 높이를 화면 높이의 최대 3분의 2까지 조정할 수 있습니다. 범위에 없는 값은 범위로 고정됩니다. 부동 소수점 값으로 지정되므로 픽셀 수준 정밀도를 허용합니다. 백분율을 계산하려면 다음 수식을 적용하기만 하면 합니다.

percentage = (100 * <desired_pixel_height>) / <screen_height>

예를 들어 높이를 56.783%로 변경하려면 다음 레지스트리 값을 설정합니다.

set OskRootKey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK
reg.exe ADD "%OskRootKey%" /v MaxHeightPercentage /t REG_SZ /d "56.783" /f

또는 PowerShell에서:

set OskRootKey "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK"
cd $OskRootKey
Set-ItemProperty -Path . -Name MaxHeightPercentage -Type String -Value 56.783

참고

레지스트리 값 형식은 문자열(REG_SZ)이어야 소수 값을 나타낼 수 있습니다. 소수점입니다. 정수 백분율에서도 DWord(REG_DWORD)를 사용하면 작동하지 않습니다 .

추가 기본 설정

나머지 기본 설정 집합은 기본 설정 하위 키의 문자열 값입니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK\Preferences
레지스트리 값 기본값 Description
AudioFeedback_Disabled "0" "0"은 키 클릭 오디오 피드백을 사용하도록 설정합니다. "1"은 사용하지 않도록 설정합니다.
Dictation_Disabled "1" "0"은 받아쓰기(음성 인식) 단추를 표시합니다. "1"은 숨깁니다. (아래 참고 사항 참조)
KeyboardModeEnabled_full "0" "0"은 전체 키보드 모드를 사용하지 않도록 설정합니다. "1"을 사용하면 됩니다.
KeyboardModeEnabled_narrow "1" "0"은 좁은 키보드 모드를 사용하지 않도록 설정합니다. "1"을 사용하면 됩니다.
KeyboardModeEnabled_wide "1" "0"은 와이드 키보드 모드를 사용하지 않도록 설정합니다. "1"을 사용하면 됩니다.
ModeOrder "wide;narrow;full" 모드가 활성화된 경우 모드 드롭다운 메뉴에 나열되는 순서(왼쪽에서 오른쪽)입니다.
SettingsMenuKey_Collapsed "0" 모드 드롭다운 메뉴를 숨깁니다. 하나의 모드만 사용하도록 설정된 경우 이를 "1"로 설정합니다.
Paste_Disabled "0" "0"은 붙여넣기 단추를 표시합니다. "1"은 숨깁니다. 다시 부팅한 후 변경 내용이 적용됩니다.
CloseButton_Disabled "0" "0"은 닫기 단추를 표시합니다. "1"은 닫기 단추를 숨깁니다. 다시 부팅한 후 변경 내용이 적용됩니다.
EmojiKeyEnabled "0" "0"은 이모지 키를 숨깁니다. "1"은 사용자가 이모지 문자를 입력할 수 있도록 표시합니다.

참고

받아쓰기 모드에서는 선택한 입력 언어와 오디오 입력 디바이스에 대해 음성 패키지를 설치해야 합니다. 일치하는 음성 패키지가 설치되어 있지 않으면 받아쓰기 단추가 표시되지 않습니다.

모든 이미지에는 en-US 음성 언어가 포함됩니다. 다른 음성 패키지는 선택적 기능으로 설치됩니다. IoT 기능에 대한 자세한 내용은 IoT Core 기능 목록IoT Core 제조 가이드를 참조하세요.

예를 들어 키보드 모드만 wide 사용하도록 설정하려면 PowerShell에서 다음을 수행할 수 있습니다.

set OskRootKey "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK"
cd $OskRootKey
mkdir Preferences
cd Preferences
Set-ItemProperty . -Name KeyboardModeEnabled_full -Value "0"      # Optional, since the default is "0"
Set-ItemProperty . -Name KeyboardModeEnabled_narrow -Value "0"
Set-ItemProperty . -Name KeyboardModeEnabled_wide -Value "1"      # Optional, since the default is "1"
Set-ItemProperty . -Name SettingsMenuKey_Collapsed -Value "1"