我从C#运行Firefox(默认浏览器),代码为:
System.Diagnostics.Process.Start(browser.Document.Url.ToString());
我希望Firefox能够在后台运行,因为每次打开一个新选项卡,Windows都会关注Firefox,并且很烦人。
如何控制Firefox标签,一段时间后关闭它们?
答案 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