使用C++在新窗口中启动URL(Windows)

Tom*_*das 4 c++ url

如何使用C++在Windows窗口中启动URL(仅限Windows)?

直接的方法似乎在现有的浏览器窗口中打开一个新选项卡.(或者,如果禁用选项卡式浏览,则新URL会劫持现有的浏览器窗口).

这适用于使用MFC和Qt的(大型)桌面应用程序.

KPe*_*xEA 9

我用这个在默认浏览器中显示本地生成的html,在我的情况下,文件名是"c:\ temp\page.html",或许用URL替换filename可能会工作?

ShellExecute(NULL,"open",filename,NULL,NULL,SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)

更新: 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.

所以看起来你无法控制打开一个新窗口.无论当前运行的浏览器能够以任何他们想要的方式打开它.