Показать модальное диалоговое окно из приложения Win32 поверх приложения UWP
Есть ли у процесса способ показать модальное диалоговое окно поверх приложения UWP отдельного процесса (в частности, MS Edge) или заблокировать любое взаимодействие пользователя с приложением UWP, пока мы показываем наш диалог?
Фон
У нас есть приложение, которое время от времени, в зависимости от действий пользователя, должно запрашивать дополнительную информацию у пользователя, показывая модальное диалоговое окно над РАЗНЫМ приложением, блокируя пользовательский ввод, пока пользователь взаимодействует с модальным диалоговым окном.
С обычными приложениями Win32 мы можем просто показать модальное диалоговое окно WinForms и установить для его владельца окна исходное приложение, и это прекрасно работает, например,
dialog.ShowDialog(GetTargetWindow());
Однако это не работает с приложениями UWP. Мы попробовали тот же подход, используя разные hWnds, связанные с приложением UWP (например, ApplicationFrameWindow
, Windows.UI.Core.CoreWindow
, ApplicationFrameInputSinkWindow
окна), но ни один, кажется, не работает. Похоже, что это не работает из-за изоляции AppContainer.
Стоит отметить, что это корпоративное программное обеспечение, и у нас есть системная служба, работающая в фоновом режиме, которая может выполнять код любого уровня привилегий, поэтому разрешения не должны быть проблемой.