屏幕键盘

Windows IoT 企业版为开发人员提供了许多屏幕键盘功能,以增强用户体验。

关键功能

键盘实现为外设设备开发提供了以下优势:

启用屏幕键盘

Windows 提供了一个内置的轻松访问工具,称为屏幕键盘,可用于代替物理键盘。 无需触摸屏即可使用屏幕键盘。 它会显示一个具有所有标准键的可视键盘,因此可使用鼠标或其他指点设备来选择键,也可使用一个或一组物理键来循环访问屏幕上的键。

打开屏幕键盘

转到“开始>”,然后选择“设置”>“轻松访问”>“键盘”,再打开“使用屏幕键盘”下的切换开关。 屏幕上将显示可用于在屏幕上移动和输入文本的键盘。 键盘将一直保留在屏幕上,直到你将其关闭。

注意

若要从登录屏幕打开屏幕键盘,请选择登录屏幕右下角的“轻松访问”按钮,然后选择“屏幕键盘”

更改信息输入到屏幕键盘的方式

打开屏幕键盘后,选择“选项”键,然后选择所需的选项

  • “使用点击声音”。 如果希望在按键时听到声音,请使用此选项。

  • “显示键以更轻松地在屏幕上移动”。 如果希望键在键入时亮起,请使用此选项。

  • “打开数字键盘”。 使用此选项可展开屏幕键盘以显示数字键盘。

  • “单击键”。 如果希望单击或点击屏幕上的键来输入文本,请使用此模式。

  • “将鼠标悬停在键上”。 如果使用鼠标或游戏杆来指向键,请使用此模式。 如果在指定时间内指向字符,则所指向字符将自动输入。

  • “扫描键”。 如果希望屏幕键盘持续扫描键盘,请使用此模式。 扫描模式会突出显示可通过按键盘快捷方式、使用切换输入设备或使用模拟鼠标单击的设备键入键盘字符的区域。

  • “使用文本预测”。 如果希望屏幕键盘在键入时提供字词建议,这样便无需键入每个完整的字词,请使用此选项。

注意

  • 文本预测提供了英语、法语、意大利语、德语和西班牙语版本。 如果想要使用其中一种语言但尚未安装该语言,请安装该语言的语言文件。
  • 如果使用的是悬停模式或扫描模式并意外将屏幕键盘最小化,则可以通过在任务栏中指向它(对于悬停模式)或按扫描键(对于扫描模式)来将其还原。
  • 如果将屏幕键盘最小化并切换到平板模式,请使用“任务视图”按钮返回到屏幕键盘。

功能包

对于原型制作(开发)映像,屏幕键盘功能已包含在内,但需要从 Windows 设备门户中的“设备设置”启用它。

为了进行商业化,以下可选功能包会将屏幕键盘添加到映像中:

  • IOT_SHELL_ONSCREEN_KEYBOARD
  • IOT_SHELL_ONSCREEN_KEYBOARD_FOLLOWFOCUS

Windows 键盘语言布局

在此版本中,支持的语言布局已扩展为包括桌面版 Windows 中可用的全套语言布局。 要让用户可以在不同的语言布局之间进行选择,通常会在应用程序的“设置”区域中包含选择 UI。 提供以下 API,使应用程序能够设置屏幕键盘将使用的语言:

Windows.Globalization.Language.TrySetInputMethodLanguageTag

可以在 LanguageManager.cs 文件的 IoT 企业默认应用示例中查看此 API 的示例。

支持输入范围

在以前的版本中,仅提供了 EmailSmtpAddress 输入范围。 在此版本中,提供了全套输入范围。 以下主题介绍了输入范围及其在应用程序中的使用方式:

使用输入范围更改触摸键盘

输入法编辑器 (IME)

此版本提供了输入法编辑器,对于任何字符数多于键盘键数的语言(例如中文、日语和韩语),都需要该编辑器。

未遮挡的文本输入字段

在以前的版本中,触摸键盘可能会遮挡聚焦的文本字段,使用户无法看到他们正在键入的内容。 此版本通过自动将文本字段滚动到视图中来解决此问题,这样它就不会再被触摸键盘遮挡。

听写模式

如果输入语言设置为操作系统语言(默认语音),则可使用语音识别输入功能。 要在键盘中显示听写按钮,请参阅以下有关用户界面配置的一节。

用户界面配置

屏幕键盘为其用户界面提供了多个可配置的选项。 这些选项是通过注册表配置的。 在开发过程中,可以使用 PowerShell安全外壳 (SSH)。 创建 OEM 映像时,设置注册表值的首选机制是此处介绍的 OEMInput.xml 文件:

运行时自定义项

注意

此处所述的大多数注册表设置将在屏幕键盘可见时生效。 这样在开发过程中便可轻松尝试不同的设置值组合,立即实时查看所生成的更改。 如果设置没有立即生效,则需要重新启动设备才能看到对键盘 UI 的更改。

键盘高度

默认情况下,触摸键盘将使用屏幕高度的 45%(下半部分)。 这可能会在设备上显得太大或太小,具体取决于其大小和分辨率。 键盘高度最多可调整为屏幕高度的三分之二。 任何不在范围内的值都将被限制在范围内。 因为此值指定为浮点值,所以它可以使用像素级精度。

应用以下公式来计算百分比: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
注册表值 默认值 说明
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 企业制造指南

例如,要仅启用 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"

其他资源