多年来,我一直在使用 ShellExecute() API 从我的应用程序中启动默认的 Web 浏览器。像这样:
ShellExecute( hwnd, _T("open"),
_T("http://www.winability.com/home/"),
NULL, NULL, SW_NORMAL );
它一直运行良好,直到几周前谷歌发布了它的 Chrome 浏览器。现在,如果计算机上安装了 Chrome,ShellExecute API 将不再打开网页。
有没有人想出如何解决这个问题?(没有检测到 Chrome 并显示一条消息告诉用户这是 Chrome 的错?)
编辑:谢尔盖提供的代码似乎有效,所以我接受了它作为“答案”。除了我不喜欢对 WinExec 的调用:MSDN 读到 WinExec 只是为了与 16 位应用程序兼容而提供的。IOW,它可能会停止使用任何服务包。我没有尝试过,但如果它已经停止在 Windows x64 上工作,我不会感到惊讶,因为它根本不支持 16 位应用程序。因此,我将使用 ShellExecute 而不是 WinExec,它的路径与 Sergey 的代码一样从注册表中获取,并将 URL 作为参数。谢谢!