在C# 中以程式產生按鍵事件
以程式產生模擬鍵盤按下的事件是各種場景(例如自動化測試)中的一項關鍵任務和使用者介面模擬。本文探討如何在 C# 中實現此功能,特別是在 WPF 框架中。
WPF 應用程式的解決方案
WPF 應用程式的一個簡單方法是利用 KeyEventArgs類別和目標元素上的 RaiseEvent 方法。以下是向當前焦點元素發送 Insert 鍵 KeyDown 事件的範例:
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 } );
此解決方案消除了對本機呼叫或操作 Windows 內部結構的需要,從而確保了可靠性。此外,它還允許在特定元素上精確模擬按鍵。
TextInput 事件
對於發送 TextInput事件,程式碼不同稍微:
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 } );
注意事項:
以上是如何在 C# WPF 應用程式中以程式設計方式產生按鍵事件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!