Bagikan melalui


KeyRoutedEventArgs.DeviceId Properti

Definisi

Mendapatkan ID unik untuk perangkat input yang menghasilkan peristiwa kunci ini.

Gunakan DeviceId untuk membedakan antara semua perangkat yang terhubung yang dapat menghasilkan peristiwa utama, seperti beberapa pengontrol game.

DeviceId tidak didukung untuk semua perangkat 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

Nilai Properti

String

Platform::String

winrt::hstring

Pengidentifikasi unik untuk perangkat input yang terkait dengan peristiwa kunci, atau string kosong untuk perangkat yang tidak didukung. Perangkat yang sama dapat diberi ID yang berbeda setiap kali tersambung.

Persyaratan Windows

Rangkaian perangkat
Windows 10 Anniversary Edition (diperkenalkan dalam 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v3.0)

Keterangan

Beberapa perangkat, seperti Xbox, mengizinkan beberapa pengguna masuk untuk satu sesi interaktif. Properti DeviceId ini berguna untuk mengambil info untuk akun pengguna tertentu yang terkait dengan perangkat input.

Di Windows 10 dan yang lebih baru, aplikasi Platform Windows Universal (UWP) tidak memiliki akses ke informasi pengguna tanpa persetujuan pengguna eksplisit (tidak seperti Windows 8, di mana izin diberikan secara default).

aplikasi Platform Windows Universal (UWP) yang mengakses informasi pengguna harus menyatakan kemampuan userAccountInformation (Windows.System.UserDeviceAssociation.FindUserFromDeviceId, Windows.System.User.FindAllAsync dan User.GetPropertiesAsync dapat digunakan untuk mendapatkan data).

Ketika kemampuan ini dideklarasikan, pengguna yang menginstal aplikasi diminta untuk mengizinkan akses ke informasi mereka. Jika pengguna mengizinkan aplikasi untuk mengakses informasi, aplikasi akan muncul tercantum di halaman Privasi aplikasi Pengaturan Windows 10 (Info Akun Privasi > Pengaturan>).

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

Terkadang, peristiwa OnKeyDown mungkin tidak diaktifkan karena peristiwa sudah ditangani oleh kontrol. Dalam hal ini, panggil metode GetCurrentKeyEventDeviceId dari handler KeyDownCoreWindow, seperti yang ditunjukkan di sini.

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

Berlaku untuk

Lihat juga