SetForegroundWindow, если дочерний процесс имеет фокус - PullRequest
0 голосов
/ 02 ноября 2018

Я разработал приложение, которое запускает внешние процессы (например, блокнот и т. Д.) И отображает главное окно процесса внутри панели в моем приложении. (Как описано в этой теме)

Проблема в том, что у меня много проблем с фокусировкой. Например. когда окно находится над окном моего приложения и я щелкаю на окне подпроцесса, главное окно не выходит на передний план.

Я пытался решить эту проблему, вызывая SetForegroundWindow из основного приложения, когда дочерний процесс получает фокус, но как этот и этот поток описывает, что это работает, только если процесс отлаживается или, если это процесс переднего плана. Существует обходной путь, вызывающий AttachThreadInput, но он не работает на 100% надежно.

SetForegroundWindow также должно работать, если «процесс был запущен процессом переднего плана», но в моем случае это другой способ arround. (Процесс переднего плана был запущен процессом)

Есть ли способ получить право на установку окна переднего плана, если сфокусированное окно является дочерним процессом моего процесса?

1 Ответ

0 голосов
/ 02 ноября 2018

SetForegroundWindow устанавливает поток , который создал указанное окно, на передний план.

BringWindowToTop переводит указанное окно в начало Z-порядка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...