Управление неактивным WPF окном из другого приложения.
От: Ilyatk  
Дата: 05.05.11 15:11
Оценка:
Есть 2 приложения:
1. Обычное Wpf окно — назовем его WpfSlave
2. Есть другое приложения тоже с окном. Предпочтительно обычное native, но для примера можно использовать и Wpf. Назовем его Master.

Задача:
При активном окне приложения Master дублировать движения мышки/ работа с клавиатурой в окно WpfSlave. При этом чтобы поведение окна WpfSlave было бы таким же, как если бы оно было активным и с ним производили эти действия.

Простейший вариант дублирования всех виндовых сообщений из окна Master в WpfSlave ни к чему не привело. Окно ни как не реагирует на эти сообщения. Альтернативный вариант вызвать события в ручную. Я пробовал используя VisualTreeHelper.HitTest находить элементы и вызывать события через RaiseEvent. Mouse Up/Down/Click сработали, но я не понял как релаизовать изменения контролов при наведении мышки (MouseOver), вызов MouseEnter не вызывается на котроле.

Вопросы:
— Есть ли способ релизовать задачу без ручного вызова событий (например как-нибудь заставить окно обрабатывать виндовые сообщения)?
— Если все же вызывать евенты в ручную можно ли где-нибудь найти правильный порядок вызова евентов, как реализовать MouseEnter/MouseLeave?
.net wpf messages wndproc
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.