google-chrome fullscreen multiple-monitors kiosk-mode
Tomin.Tools.KioskMode.zip

google chrome - Cómo abrir dos instancias del modo kiosco de Chrome en diferentes pantallas(Windows)



google-chrome fullscreen (5)

Corrí en el mismo problema y conseguí una buena solución con los indicadores de la línea de comandos. La solución de https://stackoverflow.com/a/29646543/3634274 también funciona muy bien, pero necesita una configuración cada vez que quiera instalar nuevas estaciones multimonitor y no tengo iconos con nombre para cada aplicación.

Utilizo una combinación de algunas banderas de línea de comandos y funciona:

Monitor 1:

--user-data-dir=C:/temp/App1 --app="http://appxy.appserver.my?station=PC-MYWORKSTATION&theme=dark" --incognito --window-position=0,0 --start-fullscreen

Monitor 2:

--user-data-dir=C:/temp/App2 --app="http://appxy.appserver.my?station=PC-MYWORKSTATION&theme=light" --incognito --window-position=2560,0 --start-fullscreen

Es importante usar perfiles de usuario completamente separados, porque cuando tienes tu Chrome con tu perfil abierto, entonces no se inicia como su propia instancia. Con esa configuración puedo usar mi chrome tal como está y abrir mis aplicaciones en el segundo o tercer monitor, por ejemplo, como aplicaciones de monitoreo en las que solo quiero mostrar cosas.

Para facilitar la configuración, escribí un script de powershell que crea solo el acceso directo con un icono:

# Example Call: # # Monitor 1 # ./createShortcut.ps2 -AppName "MyApp 1" -AppPath "http://google.com" -StartFullScreen $true -WindowPosition "0,0" # ./createShortcut.ps2 -AppName "MyApp 1" -AppPath "http://google.com" -AppIcon "//domain.local/icons/myapp.ico" -StartFullScreen $true -WindowPosition "0,0" # # Monitor 2 # ./createShortcut.ps2 -AppName "MyApp 2" -AppPath "http://google.com" -StartFullScreen $true -WindowPosition "2560,0" # ./createShortcut.ps2 -AppName "MyApp 2" -AppPath "http://google.com" -AppIcon "//domain.local/icons/myapp.ico" -StartFullScreen $true -WindowPosition "2560,0" param( [string]$AppName, [string]$AppPath, [string]$AppIcon, [boolean]$StartFullscreen, [string]$WindowPosition ) $AppArgs = " --incognito"; if($WindowPosition) { $AppArgs += " --window-position=$WindowPosition" } if($StartFullscreen -eq $true) { $AppArgs += " --start-fullscreen" } $userDir = "C:/temp/$AppName" Write-Host "Create Folder:"$userDir New-Item -ItemType directory -Path $userDir -Force > $null $scArguments = "--user-data-dir=`"$userDir`" --app=`"$AppPath`"$AppArgs" Write-Host "Argmunets: $scArguments" $Shell = New-Object -ComObject WScript.Shell $ShortCut = $Shell.CreateShortcut("$env:USERPROFILE/Desktop/$AppName.lnk") $ShortCut.TargetPath = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe" $ShortCut.Arguments = $scArguments $ShortCut.WorkingDirectory = "C:/Program Files (x86)/Google/Chrome/Application" $ShortCut.WindowStyle = 1 if ($AppIcon.Length -gt 0) { $ShortCut.IconLocation = $AppIcon } $shortCut.Save()

Espero que esta solución ayude a todos los que buscan una solución similar.

Por último, pero no menos importante, ¿qué hace este script?

  • crea el usuario-datos-dir en silencio
  • concat los parámetros de la línea de comando
  • crea el acceso directo con un icono (opcional) en el escritorio

Estamos desarrollando una aplicación web que debe abrirse en dos instancias diferentes del navegador, cada una en una pantalla diferente. Obviamente, la PC que estamos usando ya tiene doble pantalla, y ambos monitores tienen el mismo tamaño y resolución.

La idea es que tan pronto como se inicie Windows, las dos aplicaciones se abran inmediatamente en pantalla completa, nuestro navegador preferido es Chrome, ya que cuenta con varios comandos que pueden ayudarnos a realizar la tarea.

Hemos logrado agregar a los programas de inicio dos accesos directos que abren dos instancias en modo kiosco, pero no hemos podido elegir en qué pantalla abrir.

Los atajos tienen este objetivo:

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

Para abrir dos instancias, chromes necesita crear un archivo temporal con la información de la instancia para abrir (--user-data-dir=c:/temp)

Intentamos usar ( --window-position=1680,0 ) para especificar dónde abrir la instancia, pero parece que Chrome dará prioridad a la última posición donde se abrió la última instancia, por lo que ambas instancias se abren en la misma ventana, independientemente de El comando.

Encontramos este sitio con una lista de todos los comandos disponibles, pero la lista es enorme y ni siquiera sabemos lo que estamos buscando:

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

Encontré este comando: --display=:0.0 | --display=:0.1 --display=:0.0 | --display=:0.1 Pero parece que no funciona o no lo estoy usando correctamente

¿Algunas ideas? Gracias.


Este código funcionó bien para mí:

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

Creo que el orden de los parámetros es relevante.


La forma más fácil de lograr esto es usar 2 directorios de datos diferentes. Puede o no desear eliminar las preferencias antes de iniciar. Si lo hace, su secuencia de comandos puede controlar dónde se colocan las pantallas. Si no lo hace, pueden posicionarse manualmente y recordará la posición de ambas ventanas por separado:

"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

Tenga en cuenta que también usé --start-fullscreen en lugar de kiosco, y --new-window. Usted puede o no puede necesitar esos.


Me cuesta mucho encontrar una respuesta yo mismo.

La solución más cercana a la fácil, ya que está ejecutando Windows, que pude encontrar fue crear un archivo por lotes + VBScript que emulará el acceso directo Win + teclas de flecha para mover una ventana a la segunda pantalla. Aquí hay un artículo de Tech-net muy bien escrito (el acceso directo es específico de Win-7, creo, pero también hay accesos directos del fabricante de la tarjeta gráfica)

Sin embargo, encontré un programa que en otro foro dice que puedes crear accesos directos de aplicaciones que se inician en una ventana específica llamada DisplayFusion, échale un vistazo

También puede usar la utilidad de línea de comandos que se menciona here en Superusuario <--- Probablemente el método más rápido

Espero que todo esto ayude,


Tengo el mismo problema también. Esta respuesta: https://.com/a/3750187/1305565 me inspiró a crear su propio script de PowerShell para un uso más sencillo.

Dentro de poco

Script hace lo siguiente:

  1. Iniciar una instancia de Chrome a través de script
  2. Ahora use WinApi para encontrar la ventana iniciada y muévala a la pantalla deseada
  3. Envía la tecla F11 a la ventana movida para que sea completa (podríamos iniciar Chrome en modo de pantalla completa, pero mover ventanas en ese modo no sería tan trivial)
  4. Haga lo mismo con otras instancias, especificando la URL necesaria.

Guion final

Las definiciones de funciones están ocultas en Dll y en otro script de ayuda. (Descárgalos desde GitHub usando el enlace de arriba)

$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