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

时间:2018-11-30 06:34:29

标签: c# wpf keyboard-events

目前,由于谷歌搜索,我使用了此代码段。

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。绘制一个框(例如,我在一个excel单元格上绘制一个框)
  • 2。单击框坐标(以更改键盘焦点)
  • 3。将击键发送到单击的excel单元格

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

以某种方式,单击事件(使用鼠标事件)可能不会自动更改键盘焦点。

那么,如果可能的话,如何更改键盘焦点? 还是可以从坐标中获取IInputElement?然后将其设置为键盘焦点。 当然,所有这些都在WPF的主应用程序窗口之外。

1 个答案:

答案 0 :(得分:1)

找到了!

在: Installed InputSimulator via NuGet, no members accessible

在大多数情况下都可以使用。

在大多数情况下,我说过,因为它可以在其他窗口(如excel应用程序)中键入,但可以在其他自定义应用程序窗口中键入。在某些情况下可能无法正常工作。

希望它对其他人有帮助,寻找相同的东西。