如何使用 C++(仅限 Windows)在新窗口中启动 URL?
直截了当的方法似乎是在现有浏览器窗口中打开一个新选项卡。 (或者,如果选项卡式浏览被禁用,新的 URL 会劫持现有的浏览器窗口)。
这是一个(大型)桌面应用程序,使用 MFC 和 Qt。
最佳答案
我用它在默认浏览器中显示本地生成的 html,在我的例子中,文件名类似于“c:\temp\page.html”,也许用 URL 替换文件名可能有效?
ShellExecute(NULL,"open",filename,NULL,NULL,SW_SHOWNORMAL);
更新: http://support.microsoft.com/kb/224816
ShellExecute如何判断是否启动一个新的实例 当 ShellExecute 查看注册表时,它会查找 shell\open 子项。如果定义了 shell\open\ddeexec 键,则带有指定应用程序 IExplore 和主题 WWW_OpenURL 的动态数据交换 (DDE) 消息将广播到桌面上的所有顶级窗口。第一个响应此消息的应用程序是转到请求的 URL 的应用程序。如果没有应用程序响应此 DDE 消息,则 ShellExecute 使用包含在 shell\open\command 子项中的信息来启动应用程序。然后它重新广播 DDE 消息以转到请求的 URL。
看来您无法控制打开新窗口。当前运行的任何浏览器都可以以他们想要的任何方式打开它。
关于c++ - 使用 C++ (Windows) 在新窗口中启动 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/849656/