Как открыть два экземпляра режима киоска Chrome на разных дисплеях (Windows)

мы разрабатываем веб-приложение, которое необходимо открыть в двух разных экземплярах браузера каждый на другом экране. Очевидно, что ПК, который мы используем, уже имеет двойной дисплей, и оба монитора имеют одинаковый размер и разрешение.

идея заключается в том, что как только Windows запускается, два приложения должны немедленно открываться в полноэкранном режиме, наш предпочтительный браузер Chrome, поскольку он подсчитывает несколько команд, которые могут помочь нам выполнить эту задачу.

мы удалось добавить в программы запуска два ярлыка, которые открывают два экземпляра в режиме киоска,но мы не смогли выбрать, на каком дисплее открыть.

ярлыки имеют эту цель:

"C:Program Files (x86)GoogleChromeApplicationchrome.exe" --user-data-dir=c:temp --kiosk www.domain.com --new-window "%1" --window-position=0,0

"C:Program Files (x86)GoogleChromeApplicationchrome.exe" --user-data-dir=c:temp --kiosk www.domain2.com --new-window "%2" --window-position=1680,0

для открытия двух экземпляров chromes необходимо создать временный файл с информацией об экземпляре, чтобы открыть (--user-data-dir=c:temp)

мы пытались, используя (--window-position=1680,0) чтобы указать, где открыть экземпляр, но кажется, что Chrome будет отдавать приоритет последнему позиция, в которой был открыт последний экземпляр, поэтому оба экземпляра открываются в одном окне независимо от команды.

мы нашли этот сайт со списком всех доступных команд, но список огромен, и мы даже не знаем, что мы ищем:

http://peter.sh/experiments/chromium-command-line-switches/

Я нашел эту команду: --display=:0.0 | --display=:0.1 но это, похоже, не работает, или я не использую его должным образом

любой идеи? Спасибо.

4 ответов


У меня такая же проблема. Этот ответ:https://stackoverflow.com/a/3750187/1305565 вдохновил меня на создание собственного сценария PowerShell для упрощения использования.

в скором времени

скрипт делает следующее:

  1. запустите экземпляр Chrome с помощью скрипта
  2. теперь используйте WinApi, чтобы найти начатое окно и переместить его на нужный экран
  3. отправить клавишу F11 в перемещенное окно, чтобы сделать его полноэкранным (мы могли бы запустить chrome уже в полноэкранном режиме, но перемещение окон в этом режиме было бы не так тривиально)
  4. сделайте то же самое с другими экземплярами, указав необходимый URL.

скрипт

определения функций скрыты в Dll и в другом вспомогательном скрипте. (загрузите их из GitHub, используя ссылку выше)

$chromePath = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
$chromeArguments = '--new-window --incognito'

# &taskkill /im chrome* /F 
Chrome-Kiosk 'http://google.com' -MonitorNum 1 
Chrome-Kiosk 'http://http://www.bbc.com/' -MonitorNum 2 

этот код отлично работал для меня:

start C:\Users\terminal\AppData\Local\Google\Chrome\Application\chrome.exe --app="http://www.domain1.com" --window-position=0,0 --kiosk --user-data-dir=c:/monitor1

start C:\Users\terminal\AppData\Local\Google\Chrome\Application\chrome.exe --app="http://www.domain2.com" --window-position=1680,0 --kiosk --user-data-dir=c:/monitor2

Я думаю, что порядок параметров имеет значение.


самый простой способ сделать это-использовать 2 разных каталога данных. Вы можете или не хотите удалять настройки перед запуском. Если вы это сделаете, ваш скрипт может контролировать, где размещены экраны. Если вы этого не сделаете, то они могут быть расположены вручную, и он будет помнить положение обоих окон отдельно:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir=c:/screen1 --start-fullscreen --new-window www.domain.com --new-window "%1" --window-position=0,0

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir=c:/screen2 --start-fullscreen --new-window www.domain2.com --new-window "%2" --window-position=1680,0

Примечание, я также использовал --start-fullscreen вместо киоска и --new-window. Вы может и не нужны.


Мне самому очень трудно найти ответ.

наиболее простым решением, поскольку вы используете Windows, которое я мог найти, было создание пакетный файл +VBScript это будет эмулировать win + клавиши со стрелками, чтобы переместить окно на 2-й дисплей. вот очень хорошо написанная статья Tech-net (ярлык Win-7 конкретный, я считаю, но есть также ярлыки производителя видеокарты)

тем не менее, я нашел программу что другой форум утверждает, что вы можете создавать ярлыки приложений, которые запускаются в определенном окне под названием DisplayFusion,зацените

вы также можете использовать упомянутую утилиту командной строки здесь на суперпользователя вероятно, самый быстрый способ

надеюсь, это все поможет,