如何在 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.Drawing 一个盒子(例如,我在其中一个 excel 单元格上绘制盒子)
- 2.Click 在框坐标上(更改键盘焦点)
- 3.Send 单击excel 单元格的击键
我已经完成了第 1 步和第 2 步。
但是我找不到做第三步的方法。
不知何故,点击事件(使用鼠标事件)可能不会自动改变键盘焦点。
那么,如果可能的话,如何使用坐标更改键盘焦点?
或者我可以从坐标中获取 IInputElement 吗?然后将键盘焦点设置到它。
当然,所有这些都在 WPF 的主应用程序 window 之外。
找到了!
在:
Installed InputSimulator via NuGet, no members accessible
它在大多数情况下都有效。
我说的是在大多数情况下,因为它能够在其他 window 中键入 excel 应用程序,但在其他自定义应用程序中 window。可能存在无法正常工作的情况。
希望对正在寻找相同内容的其他人有所帮助。
目前我使用这个代码是谷歌搜索的结果。
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.Drawing 一个盒子(例如,我在其中一个 excel 单元格上绘制盒子)
- 2.Click 在框坐标上(更改键盘焦点)
- 3.Send 单击excel 单元格的击键
我已经完成了第 1 步和第 2 步。 但是我找不到做第三步的方法。
不知何故,点击事件(使用鼠标事件)可能不会自动改变键盘焦点。
那么,如果可能的话,如何使用坐标更改键盘焦点? 或者我可以从坐标中获取 IInputElement 吗?然后将键盘焦点设置到它。 当然,所有这些都在 WPF 的主应用程序 window 之外。
找到了!
在: Installed InputSimulator via NuGet, no members accessible
它在大多数情况下都有效。
我说的是在大多数情况下,因为它能够在其他 window 中键入 excel 应用程序,但在其他自定义应用程序中 window。可能存在无法正常工作的情况。
希望对正在寻找相同内容的其他人有所帮助。