Что может помешать отображению окна на переднем плане?

Что может помешать модальному отображению диалога на переднем плане при некоторых обстоятельствах?

Процесс (KeePass.exe) владеет скрытым окном. Глобальный ярлык (CTRL+A) отображает диалоговое окно на переднем плане. Это делается с помощью метода DoModal. И это работает.

Однако при некоторых обстоятельствах, которые я не знаю, происходит следующее: окно появляется на панели задач и отображается только после нажатия на него. Я создал плагин для KeePass, который перезаписывает WndProc и ждет определенного сообщения WM_COPYDATA. Если это сообщение приходит, диалог отображается с использованием DoModal. Однако в этом случае он отображается только на панели задач и не отображается на переднем плане.

Сообщение WM_COPYDATA отправлено из другого процесса, но это не должно иметь значения, верно? Что может быть причиной для этого?

Я так долго борюсь с этим, это так странно, что даже трудно объяснить проблему.

Я пытался выдать SetForegroundWindow(hKeePassWindow) перед показом диалога, но без изменений.

0 ответов

Другие вопросы по тегам