KeyRoutedEventArgs.DeviceId Propriedade

Definição

Obtém uma ID exclusiva para o dispositivo de entrada que gerou esse evento de chave.

Use DeviceId para diferenciar entre todos os dispositivos conectados que podem gerar eventos importantes, como vários controladores de jogos.

DeviceId não tem suporte para todos os 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 da propriedade

String

Platform::String

winrt::hstring

Um identificador exclusivo para o dispositivo de entrada associado ao evento de chave ou uma cadeia de caracteres vazia para um dispositivo sem suporte. O mesmo dispositivo pode receber uma ID diferente sempre que estiver conectado.

Requisitos do Windows

Família de dispositivos
Windows 10 Anniversary Edition (introduzida na 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v3.0)

Comentários

Alguns dispositivos, como o Xbox, permitem que vários usuários entrem para uma única sessão interativa. Essa propriedade DeviceId é útil para recuperar informações para uma conta de usuário específica associada ao dispositivo de entrada.

Em Windows 10 e posteriores, o aplicativo Plataforma Universal do Windows (UWP) não tem acesso a informações do usuário sem consentimento explícito do usuário (ao contrário de Windows 8, em que a permissão é concedida por padrão).

Plataforma Universal do Windows aplicativo (UWP) que acessa informações do usuário deve declarar a funcionalidade userAccountInformation (Windows.System.UserDeviceAssociation.FindUserFromDeviceId, Windows.System.User.FindAllAsync e User.GetPropertiesAsync podem ser usados para obter os dados).

Quando essa funcionalidade é declarada, os usuários que instalam o aplicativo são solicitados a permitir o acesso às suas informações. Se o usuário permitir que o aplicativo acesse as informações, o aplicativo aparecerá listado na página Privacidade do aplicativo Configurações do Windows 10 (informações da Conta de Privacidade > de Configurações>).

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

Às vezes, um evento OnKeyDown pode não ser acionado porque o evento já foi manipulado por um controle . Nesse caso, chame o método GetCurrentKeyEventDeviceId do manipulador KeyDown do CoreWindow, conforme mostrado aqui.

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

Aplica-se a

Confira também