代码之家  ›  专栏  ›  技术社区  ›  KPexEA

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

  •  5
  • KPexEA  · 技术社区  · 17 年前

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

    对于我使用的windows:

    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);
    
    }
    
    4 回复  |  直到 11 年前
        1
  •  7
  •   John Millikin    17 年前

    xdg-open :

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

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

        2
  •  2
  •   ephemient    17 年前

    xdg open是新标准,您应该尽可能使用它。但是,如果发行版的发行时间超过几年,它可能就不存在了,替代机制包括$BROWSER(旧的标准)、gnome open(gnome)、kfmclient exec(KDE)、exo open(Xfce)或自己解析mailcap(文本/html处理程序可能是浏览器)。

    也就是说,大多数应用程序不需要做那么多工作——如果它们是为特定环境构建的,那么它们使用该环境的启动机制。例如,Gnome有Gnome_url__show,KDE有KRun,大多数终端程序(例如mutt)解析mailcap等。硬编码浏览器并允许分发服务器或用户覆盖默认值也是常见的。

    我不建议硬编码,但是如果你真的想在Firefox中打开一个新标签,你可以使用“Firefox-newTab$URL”。

        3
  •  1
  •   oliver    17 年前

    http://portland.freedesktop.org/wiki/ ,第“使用Xdg UTIL”节;它指出,您可以在自己的应用程序中包含xdg open脚本,并在目标系统尚未安装xdg open的情况下将其用作备用脚本。

        4
  •  0
  •   matli    17 年前

    如果您不想涉及其他应用程序,只需使用firefox内置的远程控制命令即可。例如:

    firefox -remote 'openurl(http://stackoverflow.com)'
    

    http://www.mozilla.org/unix/remote.html