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

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

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

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

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

Что будет лучшим подходом для этого?

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

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

Спасибо!

Гурон.

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам