У меня есть dll, которая вызывается плагином браузера, когда пользователь нажимает кнопку на веб-странице. Эта DLL содержит собственный код, который создает окно (в новом потоке пользовательского интерфейса), и мне нужно это окно, чтобы получить фокус на его создании (поведение, ожидаемое пользователем). Я не пытаюсь вытолкнуть нежелательное всплывающее окно на лице пользователя.WinApi: Дайте клавиатурный фокус новому окну в новой ветке
Я попытался использовать SetForegroundWindow(), SetFocus(), BringWindowToTop(), AttachThreadInput(), минимизируя/восстанавливая окно, вы его называете, я пробовал. Самое большее, что я сделал, это заставить новое окно запуститься на панели задач.
Причина, по которой я должен быть в состоянии сделать это, заключается в том, что мне нужно учитывать доступность клавиатуры и разрешать пользователям использовать мое новое окно, не имея для него alt-tab.
Есть ли у кого-нибудь какие-либо предложения относительно того, как получить фокус здесь?
Возможно, что-то связано с тем, что IE работает как процесс с низкой целостностью. –