我需要从我的控制台应用程序中打开 Firefox,对其进行处理,然后在几分钟后将其关闭。
我正在使用 Process.Start("firefox.exe", "myurl"); 打开Firefox,这不是问题。问题在于关闭它。
CloseMainWindow() 函数通常可以工作,但如果 Firefox 有一个打开的模式窗口(如“下载失败”消息框),它就不起作用。在这种情况下,我可以在进程上调用 Kill(),但这似乎很脏。
另外,如果我在进程中调用 Kill(),那么下次打开 firefox 时,会打开一个“会话恢复”选项卡,这并不酷。我可以尝试禁用会话恢复功能,这可以解决这个问题。但是,我仍然担心像这样杀死 ffx 可能会导致其他问题。
有谁知道这样做的好方法?尝试和 pinvoke 以获取模式窗口句柄,关闭它,然后重试 CloseMainWindow() 是“最干净”的方法吗?