KeyRoutedEventArgs.DeviceId Eigenschaft

Definition

Ruft eine eindeutige ID für das Eingabegerät ab, das dieses Schlüsselereignis generiert hat.

Verwenden Sie DeviceId, um zwischen allen verbundenen Geräten zu unterscheiden, die wichtige Ereignisse generieren können, z. B. mehrere Gamecontroller.

DeviceId wird nicht für alle Eingabegeräte unterstützt.

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

Eigenschaftswert

String

Platform::String

winrt::hstring

Ein eindeutiger Bezeichner für das Eingabegerät, das dem Schlüsselereignis zugeordnet ist, oder eine leere Zeichenfolge für ein nicht unterstütztes Gerät. Demselben Gerät kann bei jeder Verbindung eine andere ID zugewiesen werden.

Windows-Anforderungen

Gerätefamilie
Windows 10 Anniversary Edition (eingeführt in 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v3.0)

Hinweise

Einige Geräte, z. B. Xbox, ermöglichen es mehreren Benutzern, sich für eine einzige interaktive Sitzung anzumelden. Diese DeviceId-Eigenschaft ist nützlich, um Informationen für ein bestimmtes Benutzerkonto abzurufen, das dem Eingabegerät zugeordnet ist.

In Windows 10 und höher hat Universelle Windows-Plattform-App (UWP) keinen Zugriff auf Benutzerinformationen ohne explizite Zustimmung des Benutzers (im Gegensatz zu Windows 8, bei dem die Berechtigung standardmäßig erteilt wird).

Universelle Windows-Plattform-App (UWP), die auf Benutzerinformationen zugreift, muss die Funktion userAccountInformation deklarieren (Windows.System.UserDeviceAssociation.FindUserFromDeviceId, Windows.System.User.FindAllAsync und User.GetPropertiesAsync können zum Abrufen der Daten verwendet werden).

Wenn diese Funktion deklariert wird, werden Benutzer, die die App installieren, aufgefordert, den Zugriff auf ihre Informationen zuzulassen. Wenn der Benutzer der App den Zugriff auf die Informationen zulässt, wird die App auf der Seite Datenschutz der Windows 10-Einstellungs-App (Datenschutzkontoinformationen für Einstellungen >>) angezeigt.

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

Manchmal wird ein OnKeyDown-Ereignis möglicherweise nicht ausgelöst, da das Ereignis bereits von einem -Steuerelement verarbeitet wurde. Rufen Sie in diesem Fall die GetCurrentKeyEventDeviceId-Methode aus dem KeyDown-Handler von CoreWindow auf, wie hier gezeigt.

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

Gilt für:

Weitere Informationen