KeyRoutedEventArgs.DeviceId Proprietà

Definizione

Ottiene un ID univoco per il dispositivo di input che ha generato questo evento chiave.

Usare DeviceId per distinguere tra tutti i dispositivi connessi che possono generare eventi chiave, ad esempio più controller di gioco.

DeviceId non è supportato per tutti i dispositivi di input.

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

Valore della proprietà

String

Platform::String

winrt::hstring

Identificatore univoco per il dispositivo di input associato all'evento chiave o stringa vuota per un dispositivo non supportato. Lo stesso dispositivo può essere assegnato un ID diverso ogni volta che è connesso.

Requisiti Windows

Famiglia di dispositivi
Windows 10 Anniversary Edition (è stato introdotto in 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v3.0)

Commenti

Alcuni dispositivi, ad esempio Xbox, consentono a più utenti di accedere per una singola sessione interattiva. Questa proprietà DeviceId è utile per recuperare informazioni per un account utente specifico associato al dispositivo di input.

In Windows 10 e versioni successive, l'app piattaforma UWP (Universal Windows Platform) (UWP) non ha accesso alle informazioni utente senza consenso esplicito dell'utente (a differenza di Windows 8, dove l'autorizzazione viene concessa per impostazione predefinita).

piattaforma UWP (Universal Windows Platform) app (UWP) che accedono alle informazioni utente devono dichiarare la funzionalità userAccountInformation (Windows.System.UserDeviceAssociation.FindUserFromDeviceId, Windows.System.User.FindAllAsync e User.GetPropertiesAsync può essere usata per ottenere i dati).

Quando questa funzionalità viene dichiarata, gli utenti che installano l'app vengono richiesti per consentire l'accesso alle informazioni. Se l'utente consente all'app di accedere alle informazioni, l'app viene visualizzata nella pagina Privacy dell'app Impostazioni Windows 10 (Informazioni > sull'account privacy>).

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 volte, un evento OnKeyDown potrebbe non essere attivato perché l'evento è già stato gestito da un controllo. In questo caso, chiamare il metodo GetCurrentKeyEventDeviceId dal gestore KeyDown di CoreWindow, come illustrato di seguito.

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

Si applica a

Vedi anche