Передайте весь ввод с клавиатуры и мыши из приложения wpf-host на хост-клиент win32. (используя HwndHost)
У меня есть старое приложение (игра), которое начинается с местоположения 0, 0 и имеет стиль диалога. Не могу переместить его обычным способом, не могу изменить размер, очень раздражает. У меня нет доступа к исходному коду, только скомпилированное приложение.
Я размещаю это приложение в форме wpf, используя HwndHost, который прекрасно работает. Очень плавное изменение размеров и перемещение окна.
Проблема в том, что мне нужен весь ввод с клавиатуры и мыши, в то время как моя форма wpf имеет фокус, чтобы его можно было просто передать размещенному приложению.
Мне не нужно фильтровать какие-либо сообщения или другие причудливые вещи, просто нужно, чтобы моя форма wpf была глупой и игнорировала все, в то время как размещенный процесс получает весь ввод.
Что будет лучшим подходом для этого?
Поскольку это вне процесса, я знаю, что это может вызвать некоторые проблемы, но я надеюсь, что есть простое решение там.
Забавно то, что я вижу движение мыши (особенно в курсоре приложения) в размещенном приложении, но щелчки и / или ввод с клавиатуры, кажется, пропускаются им.
Спасибо!
Гурон.
1 ответ
Из-за всех проблем, которые это вызывало у меня, я решил использовать другой подход. Теперь я размещаю внешнее приложение внутри формы win вместо формы wpf с hwndhost.
Это приводит к тому, что размещенное приложение автоматически получает весь ввод с клавиатуры и мыши.
Сделать мою работу намного проще.
Единственным недостатком является то, что изменение размера вряд ли сравнимо с изменением размера, которое я имел в wpf hwndhost. Но я могу с этим смириться, в любом случае перемещение приложения было моим главным приоритетом.