如何在 WPF 中模拟击键,但在应用程序之外?

How to simulate keystroke in WPF, but outside the application?

目前我使用这个代码是谷歌搜索的结果。

var eventArgs = new TextCompositionEventArgs(Keyboard.PrimaryDevice,
                new TextComposition(InputManager.Current, Keyboard.FocusedElement, "A"));
eventArgs.RoutedEvent = TextInputEvent;             
var flag = InputManager.Current.ProcessInput(eventArgs);

如果我使用 Keyboard.Focus(TxtBox) 就可以了;并且 TxtBox 将被击键填充。

但我真正想要达到的是:

我已经完成了第 1 步和第 2 步。 但是我找不到做第三步的方法。

不知何故,点击事件(使用鼠标事件)可能不会自动改变键盘焦点。

那么,如果可能的话,如何使用坐标更改键盘焦点? 或者我可以从坐标中获取 IInputElement 吗?然后将键盘焦点设置到它。 当然,所有这些都在 WPF 的主应用程序 window 之外。

找到了!

在: Installed InputSimulator via NuGet, no members accessible

它在大多数情况下都有效。

我说的是在大多数情况下,因为它能够在其他 window 中键入 excel 应用程序,但在其他自定义应用程序中 window。可能存在无法正常工作的情况。

希望对正在寻找相同内容的其他人有所帮助。