Мне нужно расширить внешнее приложение Windows с помощью фальшивой панели инструментов. Я вообще не могу изменить это внешнее приложение.
Моё поддельное приложение на панели инструментов - это приложение WPF с WPF MainWindow, C #.
Эта панель инструментов должна отображаться в верхней части окна внешнего приложения, но не как верхняя часть всей системы.
Я могу получить внешнее окно приложения HWND, размер, прямоугольник и т. Д. С помощью соответствующих функций Win32 API или с помощью WindowInteropHelper.
Возможно, я смогу скрыть окно своего приложения, если оно не отображается на 100% WindowFromPoint
вызовом Win32 API, но это не лучшая идея.
Есть идеи, как мне это решить?
Я пытался использовать SetWindowPos
функцию WIN32 API, но безуспешно.
SetWindowPos(myapp_hwnd, externalapp_hwnd, 0, 0, 0, 0, 0x0002);
Решение состоит в том, чтобы позвонить SetWindowPos
дважды, как указано здесь:
Как сохранить окно перед окном другого приложения
SetWindowPos(myapp_hwnd, 0, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, SWP_NOZORDER);
SetWindowPos(myapp_hwnd, GetNextWindow(extapp_hwnd, GW_HWNDPREV), 0, 0, 0, 0,
SWP_SHOWWINDOW | SWP_NOMOVE | SWP_NOSIZE);