KeyRoutedEventArgs.DeviceId Propriété

Définition

Obtient un ID unique pour l’appareil d’entrée qui a généré cet événement clé.

Utilisez DeviceId pour différencier tous les appareils connectés qui peuvent générer des événements clés, tels que plusieurs contrôleurs de jeu.

DeviceId n’est pas pris en charge pour tous les appareils d’entrée.

public:
 property Platform::String ^ DeviceId { Platform::String ^ get(); };
winrt::hstring DeviceId();
public string DeviceId { get; }
var string = keyRoutedEventArgs.deviceId;
Public ReadOnly Property DeviceId As String

Valeur de propriété

String

Platform::String

winrt::hstring

Identificateur unique pour l’appareil d’entrée associé à l’événement de clé, ou chaîne vide pour un appareil non pris en charge. Un ID différent peut être attribué au même appareil chaque fois qu’il est connecté.

Configuration requise pour Windows

Famille d’appareils
Windows 10 Anniversary Edition (introduit dans 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v3.0)

Remarques

Certains appareils, tels que Xbox, permettent à plusieurs utilisateurs de se connecter pour une seule session interactive. Cette propriété DeviceId est utile pour récupérer des informations pour un compte d’utilisateur spécifique associé à l’appareil d’entrée.

Dans Windows 10 et versions ultérieures, l’application plateforme Windows universelle (UWP) n’a pas accès aux informations utilisateur sans le consentement explicite de l’utilisateur (contrairement à Windows 8, où l’autorisation est accordée par défaut).

plateforme Windows universelle application (UWP) qui accède aux informations utilisateur doit déclarer la fonctionnalité userAccountInformation (Windows.System.UserDeviceAssociation.FindUserFromDeviceId, Windows.System.User.FindAllAsync et User.GetPropertiesAsync peuvent être utilisées pour obtenir les données).

Lorsque cette fonctionnalité est déclarée, les utilisateurs qui installent l’application sont invités à autoriser l’accès à leurs informations. Si l’utilisateur autorise l’application à accéder aux informations, l’application apparaît dans la page Confidentialité de l’application Paramètres Windows 10 (Informations sur le compte de confidentialité > des paramètres>).

private async void OnKeyDown(object sender, KeyRoutedEventArgs e)
{
  User user = 
    Windows.System.UserDeviceAssociation.FindUserFromDeviceId(e.DeviceId);
  string displayName = 
    (string)await user.GetPropertyAsync(KnownUserProperties.DisplayName);
  System.Diagnostics.Debug.WriteLine(displayName);
}

Parfois, un événement OnKeyDown peut ne pas se déclencher, car l’événement a déjà été géré par un contrôle. Dans ce cas, appelez la méthode GetCurrentKeyEventDeviceId à partir du gestionnaire KeyDown de CoreWindow, comme illustré ici.

public MainPage()
{
  this.InitializeComponent();
  Windows.UI.Core.CoreWindow.GetForCurrentThread().KeyDown += OnKeyDown;
}

private async void OnKeyDown(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs args)
{
  string device = Windows.UI.Core.CoreWindow.GetForCurrentThread().GetCurrentKeyEventDeviceId();
  User user = Windows.System.UserDeviceAssociation.FindUserFromDeviceId(device);
  string displayName = (string)await user.GetPropertyAsync(KnownUserProperties.DisplayName);
  System.Diagnostics.Debug.WriteLine("OnKeydown:" + displayName);
}

S’applique à

Voir aussi