Compartir a través de


KeyRoutedEventArgs.DeviceId Propiedad

Definición

Obtiene un identificador único para el dispositivo de entrada que generó este evento de clave.

Usa DeviceId para diferenciar entre todos los dispositivos conectados que pueden generar eventos clave, como varios controladores de juego.

DeviceId no es compatible con todos los dispositivos de entrada.

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

Valor de propiedad

String

Platform::String

winrt::hstring

Identificador único del dispositivo de entrada asociado al evento de clave o una cadena vacía para un dispositivo no admitido. Al mismo dispositivo se le puede asignar un identificador diferente cada vez que está conectado.

Requisitos de Windows

Familia de dispositivos
Windows 10 Anniversary Edition (se introdujo en la versión 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v3.0)

Comentarios

Algunos dispositivos, como Xbox, permiten que varios usuarios inicien sesión en una sola sesión interactiva. Esta propiedad DeviceId es útil para recuperar información de una cuenta de usuario específica asociada al dispositivo de entrada.

En Windows 10 y versiones posteriores, Plataforma universal de Windows aplicación (UWP) no tiene acceso a la información del usuario sin consentimiento explícito del usuario (a diferencia de Windows 8, donde el permiso se concede de forma predeterminada).

Plataforma universal de Windows aplicación (UWP) que accede a la información del usuario debe declarar la funcionalidad userAccountInformation (Windows.System.UserDeviceAssociation.FindUserFromDeviceId, Windows.System.User.FindAllAsync y User.GetPropertiesAsync se pueden usar para obtener los datos).

Cuando se declara esta funcionalidad, se pide a los usuarios que instalen la aplicación que permitan el acceso a su información. Si el usuario permite que la aplicación acceda a la información, la aplicación aparece en la página Privacidad de la aplicación configuración de Windows 10 (información de la cuenta de privacidad de configuración >>).

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);
}

A veces, es posible que un evento OnKeyDown no se active porque un control ya controló el evento. En este caso, llame al método GetCurrentKeyEventDeviceId desde el controlador KeyDown de CoreWindow, como se muestra aquí.

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);
}

Se aplica a

Consulte también