我有一个应用程序,当用户选择它时,在“当前”浏览器中启动一个网页.我的这部分应用程序在Windows版本中运行良好,但我无法弄清楚如何在Linux版本中执行此操作.
现在,Linux版本在特定目录中为Firefox进行了硬编码,并且每次都运行它的新实例,并且不显示我传入的URL.我希望它不会每次都启动一个新版本,而只是打开一个当前打开的新页面如果已经在运行.
对于Windows我使用:
ShellExecute(NULL,"open",filename,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-open或exo-open.