Имитация нескольких событий мыши - PullRequest
0 голосов
/ 15 сентября 2011

Я пытаюсь создать пользовательский интерфейс, в котором я взаимодействую с обычными элементами управления WPF без мыши.Я хочу поддерживать несколько курсоров, поэтому использование обычного моделирования ввода (например, SendInput) не работает.Я также пытался чередовать сообщения SendInput для имитации курсоров мыши, но это тоже не сработало (только один ввод мыши).У меня также есть ограничение, что я не хочу использовать Windows MultiPoint.Я пытался отправить события элементам управления (тестирование на кнопке) через события мыши, когда я обнаружил, что моя позиция курсора находится над элементами управления, используя: MouseEnterEvent, MouseLeaveEvent, MouseMove, MouseDownEvent и MouseUpEvent.Но кроме MouseDownEvent, похоже, ничего из этого не работает.Вот пример того, как я отправляю MouseEnterEvent:

System.Windows.Input.MouseEventArgs e =
    new System.Windows.Input.MouseEventArgs(System.Windows.Input.Mouse.PrimaryDevice, DateTime.Now.Millisecond);
e.RoutedEvent = System.Windows.Input.Mouse.MouseEnterEvent;
elementUnderCursor.RaiseEvent(e);

Где elementUnderCursor - это UIElement.

Ответы [ 2 ]

0 голосов
/ 20 октября 2011

Обновление dsf работает для имитации устройств виртуальной мыши, я работаю над проектом с несколькими мышами с помощью kinect, поэтому, пожалуйста, посмотрите на текущий прогресс на сайте: http://kinectmultipoint.codeplex.com. Имейте в виду, что несколько драйверов мыши не могут быть построены за одну ночь. также загрузите Windows ddk для имитации мышиных устройств. сценарий testgenerichid.wsf должен быть изменен для вашего сценария, но это возможно.

0 голосов
/ 15 сентября 2011

Я думаю, что я хотел, чтобы то же самое было и для моего приложения multimose kinect, но если у вас есть эмулируемый драйвер мыши, вам нужно просто выяснить, как сообщить приложению, что произошло событие с этим драйвером мыши вместо вашей usb-мыши или драйвер мыши ps / 2. Например, отправьте событие mousedown и up для имитации щелчка мыши для мыши # 1, # 2. Также обновите положение мыши для мыши № 1, № 2. Мои соображения по поводу вышесказанного состоят в том, что я хотел, чтобы он работал в любом приложении, запустив программу, аналогичную приведенной выше программе, в фоновом режиме в качестве службы.

...