屏幕键盘
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"