Принудительно открыть веб-страницу с помощью Internet Explorer - PullRequest
0 голосов
/ 18 ноября 2011

Мне нужно открыть веб-страницу с помощью Internet Explorer, даже если это не предопределенный браузер.

(например, Chrome предопределен, но я хочу открыть www.ThisRunsOnlyOnInternetExplorer.com.

Как этого добиться? Конечно, с ShellExecute я знаю, как открыть браузер по умолчанию.

Конечно, это должно работать во всех операционных системах Windows и во всех версиях Internet Explorer, поэтому я не могу прописать путь к iexplorer.exe.

Можете ли вы предложить решение?

Примечание: если есть способ получить путь к iexplorer.exe с помощью некоторого API, возможно, уловка заключается в том, чтобы получить этот путь, а затем использовать ShellExecute для запуска

PATH_TO_INTERNET_EXPLORER_EXE www.ThisRunsOnlyOnInternetExplorer.com

Ответы [ 3 ]

5 голосов
/ 18 ноября 2011

Вам не нужно использовать полный путь. Когда IE установлен, он регистрируется в реестре App Paths . Следовательно, вам просто нужно отправить iexplore.exe на ShellExecute().

Примечание: CreateProcess() не использует механизм контуров приложений, поэтому вы должны использовать ShellExecute() вместо CreateProcess().

1 голос
/ 19 февраля 2018

У меня такая же проблема, как и у вас. Я использую Google Chrome в качестве браузера по умолчанию и хочу принудительно использовать IE для определенного URL. Я нашел решение, которое идеально подходит для меня. Я использую ShellExecuteEx и указываю тип файла как IE.HTTP или IE.HTTPS.

Надеюсь, это поможет.

FillMemory (@vShellExec, SizeOf (TShellExecuteInfo), 0);
vShellExec.cbSize: = SizeOf (vShellExec);
vShellExec.fMask: = SEE_MASK_CLASSNAME или SEE_MASK_NOCLOSEPROCESS или SEE_MASK_FLAG_NO_UI;
vShellExec.Wnd: = 0;
vShellExec.lpFile: = PChar (asURL);
vShellExec.nShow: = SW_ShowNormal;
vShellExec.lpClass: = PChar (sFileType); // использовать IE.HTTP или IE.HTTPS
vShellExec.lpVerb: = PChar ('Open');

ShellExecuteEx (@vShellExec);

1 голос
/ 18 ноября 2011

попробуйте что-то вроде ShellExecute (handle, "open", "% PROGRAMFILES% \ Internet Explorer \ iexplore.exe", "http://google.com", NULL, SW_SHOWNORMAL);

Я думаю, программные файлы установлены для всех окон.

РЕДАКТИРОВАТЬ: я удалил другие вещи, потому что я не совсем понял вопрос.

...