Небольшой фон
Наше приложение (AppA) вызывает стороннее приложение (AppB).Мы моделируем окно AppB как модальное для нашего приложения.
pseudo
while AppB_Running
If AppA_focused
SetForeGroundWindow(AppB_Hwnd)
HandleMessage
SetForegroundWindow(AppA_HWnd)
Это работало в течение многих лет без инцидентов, то есть до тех пор, пока мы не начали развертывать Windows 10. Мы начали получать отчеты о случайном приложении (Когда мы закрывали AppB, когда-то фокусировался на AppC (на самом деле, учитывая технические знания нашего пользователя, отчет был более похож на «Закрытие AppB убивает AppA», но я отвлекся).Такое поведение может быть воспроизведено время от времени (<5%) на компьютере разработчика (но еще не во время отладки ...) </p>
Пока результаты теста показывают, что AppC - это приложение, которое было в фокусе до AppA.
Есть ли способ, которым я могу гарантировать, что AppA вернет фокус при закрытии AppB?
Дополнительные примечания
Проблема может быть воспроизведена, даже если AppA потеряет фокус только на AppB.(AppC никогда не фокусируется после запуска AppA)