Maison >développement back-end >C++ >Comment puis-je générer par programme des événements de pression de touche dans les applications C# WPF ?
Génération programmatique d'événements de pression de touche en C#
La génération programmatique d'événements qui simulent les pressions sur le clavier est une tâche cruciale dans divers scénarios, tels que les tests d'automatisation et simulation d'interface utilisateur. Cet article explique comment obtenir cette fonctionnalité en C#, en particulier dans le framework WPF.
Solution pour les applications WPF
Une approche simple pour les applications WPF consiste à utiliser KeyEventArgs. classe et la méthode RaiseEvent sur l'élément cible. Voici un exemple pour envoyer un événement Insert key KeyDown à l'élément actuellement ciblé :
var key = Key.Insert; // Key to send var target = Keyboard.FocusedElement; // Target element var routedEvent = Keyboard.KeyDownEvent; // Event to send target.RaiseEvent( new KeyEventArgs( Keyboard.PrimaryDevice, PresentationSource.FromVisual(target), 0, key) { RoutedEvent=routedEvent } );
Cette solution élimine le besoin d'appels natifs ou de manipulation des composants internes de Windows, garantissant ainsi la fiabilité. De plus, il permet de simuler des frappes précises sur des éléments spécifiques.
Événements TextInput
Pour l'envoi d'événements TextInput, le code diffère légèrement :
var text = "Hello"; var target = Keyboard.FocusedElement; var routedEvent = TextCompositionManager.TextInputEvent; target.RaiseEvent( new TextCompositionEventArgs( InputManager.Current.PrimaryKeyboardDevice, new TextComposition(InputManager.Current, target, text)) { RoutedEvent = routedEvent } );
Considérations :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!