Передайте весь ввод с клавиатуры и мыши из приложения wpf-host в размещенный вне процесса клиент win32. (с использованием HwndHost)

У меня есть старое приложение (игра), которое начинается с адреса 0, 0 и оформлено в стиле диалогов. Не могу переместить его обычным образом, не могу изменить размер, очень раздражает. У меня нет доступа к исходному коду, только скомпилированное приложение.

Я размещаю это приложение в форме wpf, используя HwndHost, и он отлично работает. Очень плавное изменение размера и перемещение окна.

Проблема в том, что мне нужно, чтобы весь ввод с клавиатуры и мыши, в то время как моя форма wpf имеет фокус, просто передавались размещенному приложению.

Мне не нужно фильтровать какие-либо сообщения или другие причудливые вещи, просто нужно, чтобы моя форма wpf была тупой и игнорировала все, в то время как размещенный процесс получает все входные данные.

Какой для этого подход лучше всего?

Поскольку это не обрабатывается, я знаю, что это может вызвать некоторые проблемы, но я надеюсь, что есть простое решение.

Забавно то, что я действительно вижу движение мыши (специально для курсора приложения) в размещенном приложении, но щелчки и / или ввод с клавиатуры, похоже, им не хватает.

Спасибо!

Гурон.


person Huron    schedule 23.01.2013    source источник


Ответы (1)


Из-за всех проблем, которые это вызывало у меня, я решил использовать другой подход. Теперь я размещаю приложение вне процесса внутри winform вместо формы wpf с hwndhost.

Это приводит к тому, что размещенное приложение автоматически получает все данные, вводимые с клавиатуры и мыши.

Сделать мою работу намного проще.

Единственным недостатком является то, что изменение размера вряд ли сравнимо с изменением размера, которое я использовал в wpf hwndhost. Но я могу смириться с этим, ведь перемещение приложения было моей первоочередной задачей.

person Huron    schedule 25.01.2013