Partager via


Identifier les périphériques d'entrée

Identifiez les appareils d’entrée connectés à un appareil d’application Windows et identifiez leurs fonctionnalités et attributs.

API importantes : Windows.Devices.Input, Windows.UI.Input, Windows.UI.Xaml.Input

Récupérer les propriétés de la souris

L’espace de noms Windows.Devices.Input contient la classe MouseCapabilities utilisée pour récupérer les propriétés exposées par une ou plusieurs souris connectées. Créez simplement un objet MouseCapabilities et obtenez les propriétés qui vous intéressent.

Notez que les valeurs retournées par les propriétés décrites ici sont basées sur toutes les souris détectées : les propriétés booléennes retournent non zéro si au moins une souris prend en charge une fonctionnalité spécifique et que les propriétés numériques retournent la valeur maximale exposée par une souris.

 

Le code suivant utilise une série d’éléments TextBlock pour afficher les propriétés et valeurs individuelles de la souris.

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

Récupérer les propriétés du clavier

L’espace de noms Windows.Devices.Input contient la classe KeyboardCapabilities utilisée pour récupérer si un clavier est connecté. Créez simplement un objet KeyboardCapabilities et obtenez la propriété KeyboardPresent.

Le code suivant utilise un élément TextBlock pour afficher la propriété et la valeur du clavier.

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

Récupérer les propriétés tactiles

L’espace de noms Windows.Devices.Input contient la classe TouchCapabilities utilisée pour récupérer si des numériseurs tactiles sont connectés. Créez simplement un objet TouchCapabilities et obtenez les propriétés qui vous intéressent.

Notez que les valeurs retournées par les propriétés décrites ici sont basées sur tous les numériseurs tactiles détectés : les propriétés booléennes retournent non zéro si au moins un numériseur prend en charge une fonctionnalité spécifique, et les propriétés numériques retournent la valeur maximale exposée par un numériseur.

 

Le code suivant utilise une série d’éléments TextBlock pour afficher les propriétés tactiles et les valeurs.

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

Récupérer les propriétés du pointeur

L’espace de noms Windows.Devices.Input contient la classe PointerDevice utilisée pour récupérer si les appareils détectés prennent en charge l’entrée de pointeur (tactile, pavé tactile, souris ou stylet). Créez simplement un objet PointerDevice et obtenez les propriétés qui vous intéressent.

Notez que les valeurs retournées par les propriétés décrites ici sont basées sur tous les appareils de pointeur détectés : les propriétés booléennes retournent non zéro si au moins un appareil prend en charge une fonctionnalité spécifique et que les propriétés numériques retournent la valeur maximale exposée par un appareil pointeur.

Le code suivant utilise un tableau pour afficher les propriétés et les valeurs de chaque appareil pointeur.

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

Exemples

Exemples d’archive