从c#启动和停止firefox

Luc*_*jer 5 c# mono firefox

当我开始

/Applications/Firefox.app/Contents/MacOS/firefox-bin

在使用Mono的Process.Start()的MacOSX上,返回的进程的id与firefox最终运行的进程不匹配.

看起来firefox很快决定启动另一个进程,并杀死当前进程.

这使得很难阻止firefox,并检测它是否仍在运行.我尝试使用-no-remote标志启动firefox,但无济于事.

有没有办法以这样一种方式启动Firefox,它不会这样做"我会快速为你做一个新的过程"跳舞?

通过确保Firefox在启动后保持运行至少3秒,可以在某种程度上检测到这种情况,当它没有时,扫描其他firefox进程.但是,这种技术充其量是不稳定的,因为在缓慢的日子里它可能需要3秒多一点,然后所有依赖于此行为的测试都会失败.

事实证明,只有在要求firefox使用-P MyProfile启动特定的配置文件时才会发生此行为.(我需要做的,因为我需要使用特定的代理服务器设置启动firefox)如果我"正常"启动Firefox,它确实坚持其进程.

War*_*War 3

当以编程方式使用 mozilla / 嵌入其他应用程序时,您应该使用提供的组件:

mozilla 推荐的“正确方法”...

https://developer.mozilla.org/en/XPCOM

“简单的方法”,Mozilla 开发人员的普遍共识......

http://www.iol.ie/~locka/mozilla/control.htm

需要“执行流程”,只需实例化组件的实例并与之对话,您就应该拥有所需的一切。

然而 ...

如果您确实坚持要查看 Firefox 实例的实际进程,您可能需要调用

Process.Start("...\firefox.exe");

然后试试这个(我相信这也适用于 MAC 操作系统)...

C#/mono:获取 Windows 和 Linux 上的子进程列表

基本思想/思维模式是,如果它实际上立即执行另一个进程,您应该能够发现 as 将是一个“子”进程,而不仅仅是“任务列表”/进程管理器中的列表中的一个进程对于机器。