Avvia più istanze a schermo integer Chrome su più monitor da script (batch)

Il mio objective è quello di mostrare diverse schermate di contenuti web su più monitor automaticamente dopo l'avvio da un singolo computer. Il browser che vorrei utilizzare è Chrome. Se Chrome non support questo e Firefox lo farà bene.

Il sistema operativo che preferirei è Windows, se si scopre che Linux è ansible che sarebbe andato bene.

Su Windows è ansible impostare la posizione della window del browser Chrome (–window-position =) e fare in modo che Chrome si avvia in modalità a schermo integer (- kiosk). L'utilizzo di queste opzioni consente di avviare lo schermo a schermo pieno di Chrome su uno qualsiasi dei desktop / schermate collegati al computer. Sono riuscito a fare questo lavoro.

Tuttavia, se provo a fare la stessa cosa una seconda volta per avere lo schermo a schermo pieno di Chrome in una seconda schermata, la seconda window di Chrome si aprirà nella prima window, indipendentemente dalle coordinate che utilizzi per il parametro di posizionamento a wifi.

Ho provato a utilizzare i profili di Chrome e copiando la directory di Chrome e avviando il secondo chrome.exe. Tutte queste cose comportno lo stesso comportmento.

Il modo in cui sono stato in grado di avviare tre browser a schermo integer su tre schermate è facendo quanto segue:

  • Installa Google Chrome, Chromium e Google Chrome Canary build. Queste sono tre versioni del browser Chrome / Chrome che può essere installato (in Windows) accanto all'altro.
  • Avviare ciascuno dei browser in una schermata diversa utilizzando l' --window-position= row di command
  • Usate l'opzione di linea di command " --kiosk per renderli a schermo integer

Questa non è una soluzione molto bella perché puoi utilizzare questo solo per un massimo di tre istanze del browser, ma funziona.

Suggerimento aggiunto: aggiungendo le seguenti opzioni di row di command aggiuntive il browser non mostrerà banner e pagine indesiderate;

 --chrome-frame --disable-first-run-ui --no-default-browser-check --disable-translate 

Ho deciso di creare il mio script powershell basato su chiamate WinApi:

In breve

Script effettua quanto segue:

  1. Avviare un'istanza di Chrome tramite script
  2. Ora utilizzare WinApi per trovare la window iniziale e spostarla nella schermata desiderata
  3. Invia il tasto F11 alla window spostata per renderlo a schermo integer (potremmo iniziare il cromo già in modalità a schermo integer, ma le windows in movimento in quella modalità non sarebbero così banali)
  4. Fai lo stesso con altre istanze, specificando l'URL necessario.

Il mio ultimo script (le definizioni delle funzioni sono nascoste in Dll e un altro script di helper) sembra il seguente:

 $chromePath = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe' $chromeArguments = '--new-window --inceachto' # &taskkill /im chrome* /F Chrome-Kiosk 'http://google.com' -MonitorNum 1 Chrome-Kiosk 'http://http://www.bbc.com/' -MonitorNum 2 

Sono riuscito a risolverlo con diversi profili utente.

La prima volta per impostarla, avvia Chrome, senza modalità di chiosco e con un diretto dati utente. (Questo non deve esistere, Chrome lo crea.)

 chrome.exe --user-data-dir="%userprofile%/AppData/Local/Google/Chrome/User Data/monitor1" "http://example.com/monitor1.html" 

Poi spostalo per correggere il monitor e chiudere nuovamente Chrome. (La posizione viene salvata nel profilo utente.)

Poi solo per sparare in autostart con modalità kisok:

 chrome.exe --user-data-dir="%userprofile%/AppData/Local/Google/Chrome/User Data/monitor1" --kiosk "http://example.com/monitor1.html" 

Fai lo stesso per il resto dei monitor. Ogni Chrome con diverse direzioni utente è totalmente indipendente. (Utilizzo anche questo per avere impostazioni separate del proxy su Chrome in esecuzione accanto all'altro.)

Questo ha funzionato per me utilizzando due monitor:

 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 

Penso che l'ordine dei parametri sia rilevante.