Как смоделировать нажатие клавиш в WPF, но вне приложения? - PullRequest
0 голосов
/ 30 ноября 2018

В настоящее время я использовал этот снипп-код в результате поиска в Google.

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 голосов
/ 03 декабря 2018

Найдено!

В: Установлен InputSimulator через NuGet, нет доступных членов

В большинстве случаев работает.

Я сказал вв большинстве случаев, потому что он может печатать в другом окне, как приложение Excel, но в другом окне пользовательского приложения.Может случиться так, что это не сработает.

Надеюсь, это поможет другим людям, ищущим то же самое.

...