以编程方式打开和关闭Firefox

时间:2010-07-30 16:42:44

标签: c# firefox kill-process

我需要从我的控制台应用程序打开Firefox,用它做一些事情,然后在几分钟后关闭它。

我正在使用Process.Start(“firefox.exe”,“myurl”);打开firefox,这不是问题。问题在于关闭它。

CloseMainWindow()函数通常可以正常工作,但是如果firefox打开了模态窗口(如“下载失败”消息框),它就不起作用。在这种情况下,我可以在进程上调用Kill(),但这看起来很脏。

另外,如果我在进程上调用Kill(),那么下次firefox打开时会打开一个“会话恢复”选项卡,这并不酷。我可以尝试禁用会话还原功能,这将解决该问题。但是,我仍然担心杀死这样的ffx可能会导致其他问题。

有谁知道这样做的好方法?是“最干净”的方法尝试和pinvoke获取模态窗口句柄,关闭它,然后重试CloseMainWindow()?

3 个答案:

答案 0 :(得分:4)

也许watin可以帮助你

public void SearchForWatiNOnGoogle()
{
    using (var browser = new Firefox("http://www.google.com"))
    {
        browser.TextField(Find.ByName("q")).TypeText("WatiN");
        browser.Button(Find.ByName("btnG")).Click();
        browser.Close();

     }
  }

答案 1 :(得分:0)

答案 2 :(得分:0)

AutoIt有一个名为AutoItX的COM库,它可以帮助您轻松可靠地处理来自其他进程的操作窗口,包括关闭它们......

它主要是一种脚本语言,因此如果您对使用.Net中的COM不满意,您还可以将AutoIt脚本编译为EXE并从.Net应用程序运行。

http://www.autoitscript.com/