是否有'Posixy'方式打开网址,最好是在默认浏览器中?我想做点什么
ShellExecute(0, _T("open"), url, 0, 0, SW_SHOWDEFAULT);
适用于GNU / Linux和MAC。我读了一些答案说'`
if (fork() == 0)
system("sensible-browser http://wherever.com");
至少在Debian系统上做的伎俩。有没有一种简单的方法可以将其扩展到适用于其他发行版和 Mac OS X的内容?
答案 0 :(得分:3)
在Linux上,您应该尝试使用xdg-open命令启动URL。当调用该命令时,较新的发行版应该启动用户首选的浏览器。如果没有GUI运行,它甚至会尝试启动链接。
显然,POSIX中没有关于GUI桌面环境的内容。像freedesktop.org这样的项目可以填补这个角色。它试图定义一些基本功能,这些功能将适用于所有类Unix桌面,例如GNOME和KDE。
执行fork()并调用system()而不是exec()是POSIX上未定义的行为,因此我不建议这样做。
答案 1 :(得分:2)
用户的浏览器偏好并不是我所知道的POSIX标准所关注的东西。
答案 2 :(得分:2)
在Mac上,您只需使用open
命令即可。来自终端的open http://www.google.com
会为我打开一个新的Chrome标签。只需将其包裹在system
电话中。
答案 3 :(得分:1)
一种方式可能是$ BROWSER变量。 Xorg提供了xrdb
,这是这种环境的首选方式,但我认为这不会让你在Mac OS X上的任何地方。
答案 4 :(得分:1)
没有可移植的方法来实现这一目标。在Mac OS X上,解决方案是使用LSOpenCFURLRef或其他LaunchServices API使用URL方案的默认处理程序打开URL。其他平台将以不同的方式做事。