Clavier à l’écran pour les appareils dirigés

Dans Windows 10 IoT Standard version 1809, le composant clavier à l’écran a considérablement changé, et pour le meilleur! IoT Core utilise désormais les mêmes composants de clavier tactile que l’édition de bureau de Windows.

Nouvelles fonctionnalités

La nouvelle implémentation du clavier offre les avantages suivants pour le développement de votre appareil en tête :

Packages de fonctionnalités

Pour le prototypage (développement) d’images, la fonctionnalité de clavier à l’écran est déjà incluse, mais vous devez l’activer à partir des paramètres de l’appareil dans le portail d’appareil Windows.

Pour la commercialisation, les packages de fonctionnalités facultatifs suivants ajoutent le clavier à l’écran à votre image :

  • IOT_SHELL_ONSCREEN_KEYBOARD
  • IOT_SHELL_ONSCREEN_KEYBOARD_FOLLOWFOCUS

Conseil

Pour plus d’informations sur les fonctionnalités IoT Core, consultez Liste des fonctionnalités IoT Core et guide de fabrication IoT Core.

Dispositions de la langue du clavier Windows

Avec cette version, les dispositions de langue prises en charge ont été développées pour inclure l’ensemble complet de celles disponibles dans l’édition windows de bureau. Pour permettre à vos utilisateurs de choisir entre différentes dispositions de langue, vous devez généralement inclure l’interface utilisateur de sélection dans la zone Paramètres de votre application. L’API suivante est fournie pour permettre à votre application de définir la langue que le clavier à l’écran utilisera :

Windows.Globalization.Language.TrySetInputMethodLanguageTag

Un exemple de cette API peut être vu dans l’exemple d’application IoTCoreDefaultApp, dans le fichier LanguageManager.cs .

Prise en charge des étendues d’entrée

Dans les versions précédentes, seule l’étendue d’entrée EmailSmtpAddress était disponible. Dans cette version, l’ensemble complet des étendues d’entrée est disponible. La rubrique suivante explique les étendues d’entrée et comment les utiliser dans vos applications :

Utiliser l’étendue des entrées pour modifier le clavier tactile

Éditeur de méthode d'entrée (IME)

Cette version fournit un éditeur de méthode d’entrée, qui est requis pour toute langue qui a plus de graphèmes que de touches sur le clavier, comme le chinois, le japonais et le coréen.

Champs d’entrée de texte non masqués

Dans les versions précédentes, le clavier tactile peut masquer le champ de texte ciblé afin que l’utilisateur ne puisse pas voir ce qu’il tapait. Cette version résout ce problème en faisant défiler automatiquement le champ de texte dans l’affichage afin qu’il ne soit plus masqué par le clavier tactile.

Mode de dictée

Lorsque la langue d’entrée est définie sur la langue du système d’exploitation, qui est la valeur par défaut, la fonctionnalité d’entrée de reconnaissance vocale est disponible. Pour afficher le bouton de dictée dans le clavier, reportez-vous à la section suivante sur la configuration de l’interface utilisateur.

Configuration de l’interface utilisateur

Le clavier à l’écran fournit plusieurs options configurables pour son interface utilisateur. Celles-ci sont configurées via le Registre. Pendant le développement, vous pouvez utiliser PowerShell ou Secure Shell (SSH). Pour créer une image OEM, le mécanisme préféré pour définir les valeurs de Registre est le OEMInput.xml fichier abordé ici :

Personnalisations du runtime

Notes

La plupart des paramètres de Registre documentés ici prendront effet tant que le clavier à l’écran est visible. Cela vous permet, pendant le développement, d’essayer facilement différentes combinaisons de valeurs de paramètres, et de voir immédiatement les modifications qui en résultent en temps réel. Si un paramètre ne prend pas effet immédiatement, vous devez redémarrer l’appareil pour voir les modifications apportées à l’interface utilisateur du clavier.

Hauteur du clavier

Par défaut, le clavier tactile utilise les 45 % inférieurs de la hauteur de l’écran. Cela peut apparaître trop grand ou trop petit sur votre appareil, en fonction de sa taille et de sa résolution. Vous pouvez ajuster la hauteur jusqu’à un maximum de deux tiers de la hauteur de l’écran. Toute valeur qui n’est pas dans la plage est limitée dans la plage. Étant donné que cette valeur est spécifiée sous la forme d’une valeur à virgule flottante, elle permet une précision au niveau des pixels. Il vous suffit d’appliquer la formule suivante pour calculer le pourcentage :

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

Par exemple, pour modifier la hauteur sur 56,783 %, vous devez définir la valeur de Registre suivante :

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

ou à partir de PowerShell :

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

Notes

Le type de valeur de Registre doit être string (REG_SZ), afin que les valeurs fractionnaires puissent être représentées avec. décimale. L’utilisation de DWord (REG_DWORD) ne fonctionnera pas , même pour des pourcentages de nombre entiers.

Préférences supplémentaires

L’ensemble de préférences restant est des valeurs string dans la sous-clé Préférences :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK\Preferences
Valeur de Registre Valeur par défaut Description
AudioFeedback_Disabled "0" « 0 » active le retour audio du clic sur la clé ; « 1 » le désactive.
Dictation_Disabled "1" « 0 » affiche le bouton dictée (reconnaissance vocale) ; « 1 » le masque. (voir la remarque ci-dessous)
KeyboardModeEnabled_full "0" « 0 » désactive le mode clavier complet ; « 1 » l’active.
KeyboardModeEnabled_narrow "1" « 0 » désactive le mode clavier étroit ; « 1 » l’active.
KeyboardModeEnabled_wide "1" « 0 » désactive le mode clavier large ; « 1 » l’active.
ModeOrder « wide;narrow;full » L’ordre (de gauche à droite) dans lequel les modes sont répertoriés dans le menu déroulant mode, si activé
SettingsMenuKey_Collapsed "0" Masque le menu déroulant mode. Définissez cette valeur sur « 1 » si un seul mode est activé.
Paste_Disabled "0" « 0 » affiche le bouton Coller ; « 1 » le masque. La modification prend effet après le redémarrage.
CloseButton_Disabled "0" « 0 » affiche le bouton Fermer ; « 1 » masque le bouton Fermer. La modification prend effet après le redémarrage.
EmojiKeyEnabled "0" « 0 » masque la touche Emoji ; « 1 » l’affiche, ce qui permet à l’utilisateur d’entrer des caractères Emoji.

Notes

Le mode de dictée nécessite l’installation d’un package vocal pour la langue d’entrée sélectionnée, ainsi qu’un périphérique d’entrée audio. Si aucun package vocal correspondant n’est installé, le bouton de dictée ne s’affiche pas.

Toutes les images incluent la langue vocale en-US. D’autres packages speech sont installés en tant que fonctionnalités facultatives. Pour plus d’informations sur les fonctionnalités IoT, consultez Liste des fonctionnalités Principales IoT et Guide de fabrication IoT Core.

Par exemple, pour activer uniquement wide le mode clavier, dans PowerShell, vous pouvez effectuer les opérations suivantes :

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"