在C#的后台运行firefox

时间:2011-04-05 08:51:56

标签: c# firefox process background

我从C#运行Firefox(默认浏览器),代码为:

System.Diagnostics.Process.Start(browser.Document.Url.ToString());

我希望Firefox能够在后台运行,因为每次打开一个新选项卡,Windows都会关注Firefox,并且很烦人。

如何控制Firefox标签,一段时间后关闭它们?

4 个答案:

答案 0 :(得分:2)

您可以使用ProcessStartInfo告诉它运行隐藏或最小化或其他。不知道如何以编程方式操作FireFox,但我确定有一个API。

    var psi = new System.Diagnostics.ProcessStartInfo();
    psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    psi.FileName = browser.Document.Url.ToString();
    var proc = System.Diagnostics.Process.Start(psi);

    //after a while...
    proc.Kill();

答案 1 :(得分:2)

从技术上讲,你没有启动Firefox,你正在执行一个网址。 我不确定Windows究竟是做什么的,但实际上,该url是在系统的默认浏览器中打开的,无论是IE,FF还是其他可能甚至不支持标签的东西,因此查找和查杀Firefox并不是真正的解决方案如果在Opera中打开网址。

此外,如果调用实际上没有启动进程,则Process.Start方法返回null,因此如果Firefox已经运行并且只显示了一个附加选项卡,则会得到null作为结果电话。

所以,我很确定这是不可能在广泛的情况下(任何浏览器),并且,除非Firefox有一些用于客户端管理的API,也不适用于那种情况。

BTW,在我的系统上(IE是默认浏览器),WindowStyle属性没有按预期工作,因为IE弹出到前面。

答案 2 :(得分:0)

为什么不杀掉整个Firefox进程并定期重启呢?

而不是修剪选项卡

答案 3 :(得分:0)

你将无法做到这一点。首先,我很确定在后台运行Firefox并不会阻止它在打开新选项卡时获得焦点。其次,很难以编程方式控制firefox。做你想做的事的唯一方法是使用像MozRepl这样的插件。您还可以尝试使用selenium或您自己的JavaScript来控制浏览器行为。我需要能够在不使用selenium或MozRepl的情况下打开和关闭shell脚本中的选项卡,请查看我的问题From a shell script open a new tab in a specific instance of Firefox