Dela via


Identifiera indataenheter

Identifiera de indataenheter som är anslutna till en Windows-appenhet och identifiera deras funktioner och attribut.

Viktiga API:er: Windows.Devices.Input, Windows.UI.Input, Windows.UI.Xaml.Input

Hämta musens egenskaper

Namnområdet Windows.Devices.Input innehåller klassen MouseCapabilities som används för att hämta egenskaperna som exponeras av en eller flera anslutna möss. Skapa bara ett nytt MouseCapabilities-objekt och få de egenskaper som du är intresserad av.

Not Värdena som returneras av egenskaperna som beskrivs här baseras på alla identifierade möss: Booleska egenskaper returnerar icke-noll om minst en mus stöder en specifik funktion, och numeriska egenskaper returnerar det maximala värdet som exponeras av en mus.

 

Följande kod använder en serie TextBlock-element för att visa enskilda musegenskaper och värden.

private void GetMouseProperties()
{
    MouseCapabilities mouseCapabilities = new Windows.Devices.Input.MouseCapabilities();
    MousePresent.Text = mouseCapabilities.MousePresent != 0 ? "Yes" : "No";
    VertWheel.Text = mouseCapabilities.VerticalWheelPresent != 0 ? "Yes" : "No";
    HorzWheel.Text = mouseCapabilities.HorizontalWheelPresent != 0 ? "Yes" : "No";
    SwappedButtons.Text = mouseCapabilities.SwapButtons != 0 ? "Yes" : "No";
    NumButtons.Text = mouseCapabilities.NumberOfButtons.ToString();
}

Hämta tangentbordsegenskaper

Namnområdet Windows.Devices.Input innehåller klassen KeyboardCapabilities som används för att hämta om ett tangentbord är anslutet. Skapa bara ett nytt KeyboardCapabilities-objekt och hämta egenskapen KeyboardPresent .

Följande kod använder ett TextBlock-element för att visa tangentbordsegenskapen och värdet.

private void GetKeyboardProperties()
{
    KeyboardCapabilities keyboardCapabilities = new Windows.Devices.Input.KeyboardCapabilities();
    KeyboardPresent.Text = keyboardCapabilities.KeyboardPresent != 0 ? "Yes" : "No";
}

Hämta touchegenskaper

Namnområdet Windows.Devices.Input innehåller klassen TouchCapabilities som används för att hämta om några touch digitizers är anslutna. Skapa bara ett nytt TouchCapabilities-objekt och hämta de egenskaper som du är intresserad av.

Obs Värdena som returneras av egenskaperna som beskrivs här baseras på alla identifierade beröringsdigitalisatorer: Booleska egenskaper returnerar ett sant värde om minst en digitalisator stöder en specifik funktion, och numeriska egenskaper returnerar det högsta värdet som någon digitalisator uppvisar.

 

I följande kod används en serie TextBlock-element för att visa pekegenskaper och värden.

private void GetTouchProperties()
{
    TouchCapabilities touchCapabilities = new Windows.Devices.Input.TouchCapabilities();
    TouchPresent.Text = touchCapabilities.TouchPresent != 0 ? "Yes" : "No";
    Contacts.Text = touchCapabilities.Contacts.ToString();
}

Hämta pekaregenskaper

Namnområdet Windows.Devices.Input innehåller klassen PointerDevice som används för att hämta om några identifierade enheter stöder pekarindata (touch, pekplatta, mus eller penna). Skapa bara ett nytt PointerDevice-objekt och hämta de egenskaper som du är intresserad av.

Not Värdena som returneras av egenskaperna som beskrivs här baseras på alla identifierade pekareenheter: Booleska egenskaper returnerar icke-noll om minst en enhet stöder en specifik funktion, och numeriska egenskaper returnerar det maximala värdet som exponeras av en pekarenhet.

Följande kod använder en tabell för att visa egenskaper och värden för varje pekareenhet.

private void GetPointerDevices()
{
    IReadOnlyList<PointerDevice> pointerDevices = Windows.Devices.Input.PointerDevice.GetPointerDevices();
    int gridRow = 0;
    int gridColumn = 0;

    for (int i = 0; i < pointerDevices.Count; i++)
    {
        // Pointer device type.
        TextBlock textBlock1 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock1);
        textBlock1.Text = (i + 1).ToString() + " Pointer Device Type:";
        Grid.SetRow(textBlock1, gridRow);
        Grid.SetColumn(textBlock1, gridColumn);

        TextBlock textBlock2 = new TextBlock();
        textBlock2.Text = pointerDevices[i].PointerDeviceType.ToString();
        Grid_PointerProps.Children.Add(textBlock2);
        Grid.SetRow(textBlock2, gridRow++);
        Grid.SetColumn(textBlock2, gridColumn + 1);

        // Is external?
        TextBlock textBlock3 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock3);
        textBlock3.Text = (i + 1).ToString() + " Is External?";
        Grid.SetRow(textBlock3, gridRow);
        Grid.SetColumn(textBlock3, gridColumn);

        TextBlock textBlock4 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock4);
        textBlock4.Text = pointerDevices[i].IsIntegrated.ToString();
        Grid.SetRow(textBlock4, gridRow++);
        Grid.SetColumn(textBlock4, gridColumn + 1);

        // Maximum contacts.
        TextBlock textBlock5 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock5);
        textBlock5.Text = (i + 1).ToString() + " Max Contacts:";
        Grid.SetRow(textBlock5, gridRow);
        Grid.SetColumn(textBlock5, gridColumn);

        TextBlock textBlock6 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock6);
        textBlock6.Text = pointerDevices[i].MaxContacts.ToString();
        Grid.SetRow(textBlock6, gridRow++);
        Grid.SetColumn(textBlock6, gridColumn + 1);

        // Physical device rectangle.
        TextBlock textBlock7 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock7);
        textBlock7.Text = (i + 1).ToString() + " Physical Device Rect:";
        Grid.SetRow(textBlock7, gridRow);
        Grid.SetColumn(textBlock7, gridColumn);

        TextBlock textBlock8 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock8);
        textBlock8.Text = pointerDevices[i].PhysicalDeviceRect.X.ToString() + "," +
            pointerDevices[i].PhysicalDeviceRect.Y.ToString() + "," +
            pointerDevices[i].PhysicalDeviceRect.Width.ToString() + "," +
            pointerDevices[i].PhysicalDeviceRect.Height.ToString();
        Grid.SetRow(textBlock8, gridRow++);
        Grid.SetColumn(textBlock8, gridColumn + 1);

        // Screen rectangle.
        TextBlock textBlock9 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock9);
        textBlock9.Text = (i + 1).ToString() + " Screen Rect:";
        Grid.SetRow(textBlock9, gridRow);
        Grid.SetColumn(textBlock9, gridColumn);

        TextBlock textBlock10 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock10);
        textBlock10.Text = pointerDevices[i].ScreenRect.X.ToString() + "," +
            pointerDevices[i].ScreenRect.Y.ToString() + "," +
            pointerDevices[i].ScreenRect.Width.ToString() + "," +
            pointerDevices[i].ScreenRect.Height.ToString();
        Grid.SetRow(textBlock10, gridRow++);
        Grid.SetColumn(textBlock10, gridColumn + 1);

        gridColumn += 2;
        gridRow = 0;
    }

Samples

Arkivera exempel