如何使用C++在Windows窗口中启动URL(仅限Windows)?
直接的方法似乎在现有的浏览器窗口中打开一个新选项卡.(或者,如果禁用选项卡式浏览,则新URL会劫持现有的浏览器窗口).
这适用于使用MFC和Qt的(大型)桌面应用程序.
我用这个在默认浏览器中显示本地生成的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.
所以看起来你无法控制打开一个新窗口.无论当前运行的浏览器能够以任何他们想要的方式打开它.
| 归档时间: |
|
| 查看次数: |
8208 次 |
| 最近记录: |