HidDevice Klasse

Definition

Stellt eine Auflistung auf oberster Ebene und das entsprechende Gerät dar.

public ref class HidDevice sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class HidDevice final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class HidDevice : System.IDisposable
Public NotInheritable Class HidDevice
Implements IDisposable
Vererbung
Object IInspectable HidDevice
Attribute
Implementiert

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Beispiele

Ein vollständiges Beispiel zum Verwenden dieser Klasse finden Sie im Beispiel für benutzerdefiniertes HID-Gerät.

Im folgenden Beispiel wird veranschaulicht, wie eine mit XAML und C# erstellte UWP-App die GetDeviceSelector-Methode verwendet, um eine Auswahl für ein bestimmtes HID-Gerät (in diesem Fall Microsoft Input Configuration Device) zu erstellen und dann fromIdAsync-Methode zum Öffnen einer Verbindung mit diesem Gerät zu verwenden.

Hinweis

Dieser Codeausschnitt versucht, ein HID-Gerät zu finden, das möglicherweise nicht auf Ihrem System vorhanden ist. Um den Code auf Ihrem System erfolgreich zu testen, sollten Sie vendorId, productId, usagePage, usageId mit gültigen Werten aktualisieren.

  1. Öffnen von Geräte-Manager
  2. Erweitern von Human Interface-Geräten
  3. Suchen Sie ein HID-Gerät (für dieses Beispiel haben wir Microsoft Input Configuration Device ausgewählt)
  4. Klicken Sie mit der rechten Maustaste auf das Gerät, und wählen Sie "Eigenschaften" aus.
  5. Wählen Sie in "Eigenschaften" die Registerkarte "Details " aus.
  6. Wählen Sie auf der Registerkarte "Details" die Option "Hardware-ID" aus der Dropdownliste "Eigenschaft " aus.
  7. Die HID-Details werden im Feld "Wert " angezeigt:
HID-Details aus Geräte-Manager
using System;
using System.Linq;
using Windows.Devices.Enumeration;
using Windows.Devices.HumanInterfaceDevice;
using Windows.Storage;
using Windows.UI.Xaml.Controls;

namespace HIDdeviceTest
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
            EnumerateHidDevices();
        }

        // Find HID devices.
        private async void EnumerateHidDevices()
        {
            // Microsoft Input Configuration Device.
            ushort vendorId = 0x045E;
            ushort productId = 0x07CD;
            ushort usagePage = 0x000D;
            ushort usageId = 0x000E;

            // Create the selector.
            string selector = 
                HidDevice.GetDeviceSelector(usagePage, usageId, vendorId, productId);

            // Enumerate devices using the selector.
            var devices = await DeviceInformation.FindAllAsync(selector);

            if (devices.Any())
            {
                // At this point the device is available to communicate with
                // So we can send/receive HID reports from it or 
                // query it for control descriptions.
                info.Text = "HID devices found: " + devices.Count;

                // Open the target HID device.
                HidDevice device = 
                    await HidDevice.FromIdAsync(devices.ElementAt(0).Id,
                    FileAccessMode.ReadWrite);

                if (device != null)
                {
                    // Input reports contain data from the device.
                    device.InputReportReceived += async (sender, args) =>
                    {
                        HidInputReport inputReport = args.Report;
                        IBuffer buffer = inputReport.Data;

                        // Create a DispatchedHandler as we are interracting with the UI directly and the
                        // thread that this function is running on might not be the UI thread; 
                        // if a non-UI thread modifies the UI, an exception is thrown.

                        await this.Dispatcher.RunAsync(
                            CoreDispatcherPriority.Normal,
                            new DispatchedHandler(() =>
                            {
                                info.Text += "\nHID Input Report: " + inputReport.ToString() + 
                                "\nTotal number of bytes received: " + buffer.Length.ToString();
                            }));
                    };
                }

            }
            else
            {
                // There were no HID devices that met the selector criteria.
                info.Text = "HID device not found";
            }
        }
    }
}

Hinweise

Weitere Informationen zur Verwendung dieser Klasse, einschließlich Einschränkungen, finden Sie im Beispiel zur Unterstützung von HiD-Geräten (Human Interface Devices, HID) und benutzerdefiniertem HID-Gerät.

Apps, die diese Klasse verwenden, um auf ein HID-Gerät zuzugreifen, müssen bestimmte DeviceCapability-Daten im Knoten "Funktionen " des Manifests enthalten. Diese Daten identifizieren das Gerät und dessen Zweck (oder Funktion). Weitere Informationen finden Sie unter Angeben von Gerätefunktionen für HID.

Eigenschaften

ProductId

Ruft den Produktbezeichner für das angegebene HID-Gerät ab.

UsageId

Ruft den Verwendungsbezeichner für das angegebene HID-Gerät ab.

UsagePage

Ruft die Verwendungsseite der Auflistung auf oberster Ebene ab.

VendorId

Ruft den Anbieterbezeichner für das angegebene HID-Gerät ab.

Version

Ruft die Version oder Überarbeitungsnummer für das angegebene HID-Gerät ab.

Methoden

Close()

Schließt die Verbindung zwischen dem Host und dem angegebenen HID-Gerät.

CreateFeatureReport()

Erstellt den einzigen oder standardmäßigen Featurebericht, den der Host an das Gerät sendet.

CreateFeatureReport(UInt16)

Erstellt einen Featurebericht, der vom ReportId-Parameter identifiziert wird, den der Host an das Gerät sendet.

CreateOutputReport()

Erstellt den einzigen oder standardmäßigen Ausgabebericht, den der Host an das Gerät sendet.

CreateOutputReport(UInt16)

Erstellt einen Ausgabebericht, der vom ReportId-Parameter identifiziert wird, den der Host an das Gerät sendet.

FromIdAsync(String, FileAccessMode)

Öffnet ein Handle für das Gerät, das vom DeviceId-Parameter identifiziert wird. Der Zugriffstyp wird vom AccessMode-Parameter angegeben.

GetBooleanControlDescriptions(HidReportType, UInt16, UInt16)

Ruft die Beschreibungen der booleschen Steuerelemente für das angegebene HID-Gerät ab.

GetDeviceSelector(UInt16, UInt16)

Ruft eine AQS-Zeichenfolge (Advanced Query Syntax) basierend auf der angegebenen usagePage und usageId ab.

GetDeviceSelector(UInt16, UInt16, UInt16, UInt16)

Ruft eine AQS-Zeichenfolge (Advanced Query Syntax) basierend auf der angegebenen usagePage, usageId, vendorId und productId ab.

GetFeatureReportAsync()

Ruft asynchron den ersten oder Standardfeaturebericht vom angegebenen HID-Gerät ab.

GetFeatureReportAsync(UInt16)

Ruft asynchron einen Featurebericht ab, der vom ReportId-Parameter für das angegebene HID-Gerät identifiziert wird.

GetInputReportAsync()

Ruft asynchron den Standard- oder ersten Eingabebericht vom angegebenen HID-Gerät ab.

GetInputReportAsync(UInt16)

Ruft asynchron einen Eingabebericht ab, der vom ReportId-Parameter identifiziert wird, aus dem angegebenen HID-Gerät.

GetNumericControlDescriptions(HidReportType, UInt16, UInt16)

Ruft die Beschreibungen der numerischen Steuerelemente für das angegebene HID-Gerät ab.

SendFeatureReportAsync(HidFeatureReport)

Sendet einen Featurebericht asynchron vom Host an das Gerät.

SendOutputReportAsync(HidOutputReport)

Sendet einen Ausgabebericht asynchron vom Host an das Gerät.

Ereignisse

InputReportReceived

Stellt einen Ereignislistener her, der Eingabeberichte behandelt, die vom Gerät ausgegeben werden, wenn entweder GetInputReportAsync() oder GetInputReportAsync(System.UInt16 reportId) aufgerufen wird.

Gilt für:

Siehe auch