2017-02-09 11 views
0

я использую ShellExecute в GUI Aplication (созданный с Win API), чтобы открыть данную гиперссылку в браузере по умолчанию пользователя, как:ShellExecute URL в браузере не всегда установить фокус на браузере

ShellExecute(0, 0, "www.stackoverflow.com", 0, 0, SW_SHOWMAXIMIZED); // Just an example 

это работает и сайт правильно открыт в браузере по умолчанию.

Однако, я хочу, чтобы браузер сфокусировался после его запуска. На данный момент это работает только иногда: скажем, я выполняю функцию, как показано выше, в обратном вызове с нажатием кнопки. Затем он работает так, как ожидалось, и браузер фокусируется.

Однако, нажатие кнопки занимает некоторое время после открытия браузера. Если я установил фокус, тем временем, скажем, элемент управления редактирования, элемент управления редактирования (и вместе с ним весь графический интерфейс) сохраняет фокус при открытии браузера в фоновом режиме. Но я хочу, чтобы поведение было последовательным, чтобы браузер всегда занимал фокус, независимо от взаимодействия пользователя в течение небольшого периода времени после нажатия на кнопку.

Как это можно достичь?

Я уже пробовал ShellExecuteEx и WaitForInputIdle, а затем извлек ручку главного окна из идентификатора процесса. Это, однако, не работает несчастливо, потому что ShellExecuteEx не всегда возвращает идентификатор процесса (даже если SEE_MASK_NOCLOSEPROCESS установлен) ...

+0

Какой браузер вы используете? [Этот вопрос SO] (http://stackoverflow.com/questions/16558816/open-url-with-shellexecute-sw-showmaximized-dont-active-window-in-c) рассказывает о Chrome. –

+0

Я использую mozilla ... но я бы предпочел, чтобы это работало независимо от используемого браузера, поскольку я не могу предположить, что каждый пользователь GUI также имеет этот браузер по умолчанию (или даже установлен) – SampleTime

+0

@RawN: 'ShellExecuteEx' использует то, что браузер по умолчанию, выбранный любым пользователем. – IInspectable

ответ

-2

Укажите «открытым» в качестве второго параметра (операция) вместо 0/NULL.

+0

Это не работает неудачно, проблема не устранена ... – SampleTime

 Смежные вопросы

  • Нет связанных вопросов^_^