#c_sharp #wpf #winapi #unity3d #render
Здравствуйте! Хотел узнать у опытных программистов: возможно ли выполнять отрисовку окна другого приложения и перенаправлять ввод-вывод из своего приложения в это приложение? Т.е. я бы хотел, чтобы внутри моего приложения WPF был некоторый Image, в котором бы отрисовывалось окно сторонней программы, если содержимое этого окна изменяется, то Image перерисовывает окно. При этом, если был клик по Image в какой-либо точке, то для этого стороннего окна происходит событие клика в той точке, которую я кликнул на картинке. Возможно ли реализовать это с помощью WinAPI и в каком направлении следует искать решение данной проблемы? Заранее благодарен, proggamer12 Например, как реализована данная программа: http://store.steampowered.com/app/382110/
Ответы
Ответ 1
Ну если в лоб, то можно найти окно интересующей программы и получить окно "цель" [DllImport("user32.Dll")] public static extern int FindWindow (string lpClassName, string lpWindowName); Получить область этого окна [DllImport("user32.dll")] public static extern bool GetWindowRect(IntPtr hwnd, ref Rect rectangle); затем запустить таймер сканирующий область этого окна и при изменениях, перерисовывать это в своем Image. Что касается кликов, так как у вас есть дубликат координат этого окна, то можно транспонировать координаты для окна "цели" и через WinApi вызвать клик мыши по координатам. [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);
Комментариев нет:
Отправить комментарий