Запустите Firefox в фоновом режиме из C # - PullRequest
0 голосов
/ 05 апреля 2011

Я запускаю Firefox (браузер по умолчанию) из C # с кодом:

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

Я хочу, чтобы Firefox запускался в фоновом режиме, потому что каждый раз, когда открывается новая вкладка, Windows фокусируется на Firefox и раздражает.

Как я могу управлять вкладками Firefox, закрывать их через некоторое время?

Ответы [ 4 ]

2 голосов
/ 05 апреля 2011

Вы можете использовать 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();
2 голосов
/ 05 апреля 2011

Технически, вы не запускаете Firefox, вы выполняете URL.Я не уверен точно, что делает Windows, но в действительности этот URL открывается в браузере системы по умолчанию, будь то IE, FF или что-то еще, что может даже не поддерживать вкладки, поэтому поиск и уничтожение Firefox на самом деле не является решениемесли URL-адрес открыт в Opera.

Более того, метод Process.Start возвращает ноль, если на самом деле не запущен процесс при вызове, поэтому, если Firefox уже запущен и просто отображает дополнительную вкладку, вы получитеnull в результате вызова.

Итак, я почти уверен, что это невозможно сделать в широком смысле (в любом браузере), и, если Firefox не имеет своего рода API для клиентской стороныуправление, что также невозможно для этого сценария.

Кстати, в моей системе (IE является браузером по умолчанию), свойство WindowStyle не работает должным образом, так как IE появляется на переднем плане.

0 голосов
/ 03 мая 2011

Вы не сможете сделать это.Во-первых, я уверен, что запуск Firefox в фоновом режиме не остановит его фокус при открытии новой вкладки.Во-вторых, сложно управлять программным обеспечением Firefox.Единственный способ сделать то, что вы хотите, это использовать плагин, такой как MozRepl.Вы также можете попробовать использовать селен или собственный JavaScript для управления поведением браузера.Мне нужно было иметь возможность открывать и закрывать вкладки в скрипте оболочки без использования selenium или MozRepl, проверьте мой вопрос Из скрипта оболочки откройте новую вкладку в конкретном экземпляре Firefox

0 голосов
/ 05 апреля 2011

Вместо того, чтобы обрезать вкладки, почему бы просто не убить весь процесс Firefox и периодически перезапускать его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...