В течение многих лет я использовал ShellExecute () API для запуска веб-браузера по умолчанию из моих приложений. Как это:
ShellExecute( hwnd, _T("open"),
_T("http://www.winability.com/home/"),
NULL, NULL, SW_NORMAL );
Он работал нормально, пока пару недель назад Google не выпустил браузер Chrome. Теперь, если на компьютере установлен Chrome, API ShellExecute больше не открывает веб-страницу.
Кто-нибудь еще разобрался, как решить эту проблему? (Если не считать Chrome и вывести сообщение о том, что он виноват в Chrome?)
РЕДАКТИРОВАТЬ: код, предоставленный Сергеем, кажется, работает, поэтому я принял его как "ответ". За исключением того, что мне не нравится вызов WinExec: MSDN читает, что WinExec предоставляется только для совместимости с 16-битными приложениями. Я могу прекратить работу с любым пакетом обновления. Я не пробовал, но не удивлюсь, если он уже перестал работать с Windows x64, поскольку он вообще не поддерживает 16-битные приложения. Поэтому вместо WinExec я собираюсь использовать ShellExecute с путем, взятым из реестра, как это делает код Сергея, и URL-адресом в качестве аргумента. Спасибо!