Я недавно нашел эту статью , в которой упоминается несколько параметров командной строки, которые, кажется, делают это. Используя эти ключевые слова, я погуглил этот кусок кода , который, кажется, подтверждает, что эти опции существуют.
// Does not automatically open a browser window on startup (used when
// launching Chrome for the purpose of hosting background apps).
const char kNoStartupWindow[] = "no-startup-window";
// Causes Chrome to launch without opening any windows by default. Useful if
// one wishes to use Chrome as an ash server.
const char kSilentLaunch[] = "silent-launch";
Мне удалось успешно запустить Chrome с --no-startup-window
, и он действительно запустился без окон. Это выглядело так, как будто оно запускалось должным образом, оно порождало всех типичных детей, но сайт, который я пытался загрузить внутри, на самом деле не был посещен. Возможно, что этот режим без заголовка предназначен только для запуска приложений, а не для посещения сайтов без заголовка *), но он выглядит очень многообещающе, так как настроено обычное рабочее дерево, просто без окон.
Второй вариант --silent-launch
сделал процесс Chrome очень тихим. Я не заметил детей, и процесс быстро закончился. Я сомневаюсь, что это пригодится для этого случая.
После того, как я провалил свои попытки с этими опциями, я сосредоточился на менее изощренных способах. Внизу списка есть два варианта:
// Specify the initial window position: --window-position=x,y
const char kWindowPosition[] = "window-position";
// Specify the initial window size: --window-size=w,h
const char kWindowSize[] = "window-size";
Я запустил Chrome с возможностью полностью вывести его из рабочей области:
--window-size=800,600 --window-position=-800,0
и какой бы грязной она ни была, конечно, она не лишена смысла, но окно все еще не видно, и все сделано только с помощью параметров запуска chrome, без внешних инструментов, отправляющих низкоуровневые сообщения о скрытии окна.
*) да, я знаю, пытаться делать странные вещи. По сути, я пытался избавиться от окна Chrome, которое хранит Карма во время тестов. Я знаю, что могу переключиться на PhantomJS, но мне нужно было запустить их в Chrome, и всплывающее окно было ... э ... тревожным в долгосрочной перспективе.