HidDevice Klasse

Definition

Stellt eine Sammlung der obersten 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, das die Verwendung dieser Klasse veranschaulicht, finden Sie unter Beispiel für benutzerdefinierte HID-Geräte.

Im folgenden Beispiel wird veranschaulicht, wie eine mit XAML und C# erstellte UWP-App die GetDeviceSelector-Methode verwendet, um einen Selektor für ein bestimmtes HID-Gerät (in diesem Fall Das Microsoft-Eingabekonfigurationsgerät) zu erstellen, und anschließend die FromIdAsync-Methode verwendet, um eine Verbindung mit diesem Gerät zu öffnen.

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 und usageId mit gültigen Werten aktualisieren.

  1. Öffnen sie Geräte-Manager
  2. Erweitern Sie Human Interface Devices (Menschliche Schnittstellengeräte)
  3. Suchen eines HID-Geräts (in diesem 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 unter Eigenschaften die Registerkarte Details aus.
  6. Wählen Sie auf der Registerkarte Details in der Dropdownliste Eigenschaft die Option Hardware-IDs 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 unter Unterstützen von HiD-Geräten (Human Interface Devices) und Beispiel für benutzerdefinierte HID-Geräte.

Apps, die diese Klasse für den Zugriff auf ein HID-Gerät verwenden, müssen bestimmte DeviceCapability-Daten im Knoten Capabilities des Manifests enthalten. Diese Daten identifizieren das Gerät und seinen Zweck (oder seine 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 Nutzungsbezeichner für das angegebene HID-Gerät ab.

UsagePage

Ruft die Verwendungsseite der Auflistung der obersten Ebene ab.

VendorId

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

Version

Ruft die Versionsnummer oder Revisionsnummer 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 durch den 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 durch den reportId-Parameter identifiziert wird, den der Host an das Gerät sendet.

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

FromIdAsync(String, FileAccessMode)

Öffnet ein Handle für das Gerät, das durch den deviceId-Parameter identifiziert wird. Der Zugriffstyp wird durch den 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 den ersten oder standardmäßigen Featurebericht asynchron vom angegebenen HID-Gerät ab.

GetFeatureReportAsync(UInt16)

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

GetInputReportAsync()

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

GetInputReportAsync(UInt16)

Ruft asynchron einen Eingabebericht ab, der durch den reportId-Parameter identifiziert wird, vom 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

Richtet einen Ereignislistener für die Verarbeitung von Eingabeberichten ein, die vom Gerät ausgegeben werden, wenn entweder GetInputReportAsync() oder GetInputReportAsync(System.UInt16 reportId) aufgerufen wird.

Gilt für:

Weitere Informationen