c++ - 在 Linux 中从我的应用程序启动网页

标签 c++ c linux browser

我有一个应用程序,当用户选择它时,它会在“当前”浏览器中启动一个网页。我的应用程序的这一部分在 Windows 版本中运行良好,但我不知道如何在 Linux 版本中执行此操作。

现在 Linux 版本在特定目录中针对 Firefox 进行了硬编码,并且每次都运行一个新实例并且不显示我传入的 URL。我希望它不会每次都启动新版本但是如果它已经在运行,只需在当前打开的页面中打开一个新页面。

对于我使用的窗口:

ShellExecute(NULL,"open",filename,NULL,NULL,SW_SHOWNORMAL);

对于我目前使用的 Linux:

pid_t pid;
char *args[2];

char *prog=0;
char firefox[]={"/usr/bin/firefox"};

if(strstri(filename,".html"))
    prog=firefox;

if(prog)
{
    args[0]=(char *)filename;
    args[1]=0;
    pid=fork();
    if(!pid)
        execvp(prog,args);

}

最佳答案

如果您正在为现代发行版编写此代码,则可以使用 xdg-open:

$ xdg-open http://google.com/

如果您使用的是旧版本,则必须使用特定于桌面的命令,例如 gnome-openexo-open

关于c++ - 在 Linux 中从我的应用程序启动网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/155930/

相关文章:

c++ - 我的第一个 Qt 应用程序,c++(小 opencv)

c++ - 如何查看库的内部(尤其是 C 标准库)?

C程序,文件从循环输出到txt

c - ucontext.h 中的 REG_* 是什么

linux - 无法在 ubuntu 上从源代码安装 git

linux - Dockerfile:批量运行命令

c++ - 像 ListView 这样的资源管理器

c++ - 将 googlemock 与非虚拟函数的假 impl 一起使用

c - 如何从 C 中的图像目录创建视频

java - java linux 中 http 包导入错误