[英]How to open two instances of Chrome kiosk mode in different displays (Windows)
我们正在开发一个 Web 应用程序,它需要在两个不同的浏览器实例中打开,每个实例都在不同的屏幕上。 显然,我们使用的 PC 已经具有双显示器,并且两台显示器具有相同的尺寸和分辨率。
这个想法是,一旦 Windows 启动,这两个应用程序应该立即全屏打开,我们首选的浏览器是 Chrome,因为它包含几个可能帮助我们完成任务的命令。
我们已经成功地向启动程序添加了两个快捷方式,可以在 kiosk 模式下打开两个实例,但我们无法选择要打开的显示。
快捷方式有这个目标:
"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
为了打开两个实例,chromes 需要创建一个包含要打开的实例信息的临时文件(--user-data-dir=c:\\temp)
我们尝试使用 ( --window-position=1680,0
) 来指定打开实例的位置,但似乎 Chrome 会优先打开最后一个实例的最后一个位置,因此两个实例都在同一个窗口上打开,而不管命令。
我们找到了这个站点,其中列出了所有可用命令,但列表很大,我们甚至不知道我们在寻找什么:
http://peter.sh/experiments/chromium-command-line-switches/
我找到了这个命令:--display --display=:0.0 | --display=:0.1
--display=:0.0 | --display=:0.1
但它似乎不起作用或我没有正确使用它
有任何想法吗? 谢谢。
这段代码对我来说很好用:
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
我认为参数的顺序是相关的。
我也有同样的问题。 这个答案: https : //stackoverflow.com/a/3750187/1305565启发我创建自己的 PowerShell 脚本以便于使用。
脚本执行以下操作:
函数定义隐藏在 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
完成此操作的最简单方法是使用 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 而不是 kiosk 和 --new-window。 您可能需要也可能不需要这些。
我自己很难找到答案。
由于您运行的是 Windows,我能找到的最简单的解决方案是创建一个批处理文件 +VBScript ,它将模拟 Win+箭头键快捷方式以将窗口移动到第二个显示器。 这是一篇写得很好的Tech-net文章(我相信快捷键是Win-7特定的,但也有显卡制造商的快捷键)
但是,我确实找到了一个程序,另一个论坛声称您可以创建在名为 DisplayFusion 的特定窗口中启动的应用程序快捷方式,请查看
您还可以使用所提及的命令行实用程序在这里的超级用户“---也许是最快的方法
希望这一切都有帮助,
我遇到了同样的问题,并使用命令行标志设置了一个很好的解决方案。 https://stackoverflow.com/a/29646543/3634274 中的解决方案也很有效,但每次我想安装新的多监视器站时都需要进行一些设置,并且每个应用程序都没有命名图标。
我使用了一些命令行标志的组合,它可以工作:
监视器 1:
--user-data-dir=C:\temp\App1
--app="http://appxy.appserver.my?station=PC-MYWORKSTATION&theme=dark"
--incognito
--window-position=0,0
--start-fullscreen
监视器 2:
--user-data-dir=C:\temp\App2
--app="http://appxy.appserver.my?station=PC-MYWORKSTATION&theme=light"
--incognito
--window-position=2560,0
--start-fullscreen
使用完全分离的用户配置文件很重要,因为当您打开配置文件的 Chrome 时,它不会像它自己的实例那样启动。 通过该设置,我可以按原样使用我的 chrome 并在第二个或第三个显示器上打开我的应用程序,例如监控我只想显示内容的应用程序。
为了便于设置,我编写了一个 powershell 脚本,该脚本仅创建带有图标的快捷方式:
# 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()
我希望这个解决方案可以帮助所有搜索类似解决方案的人。
最后但并非最不重要的是这个脚本是什么?
以下是如何使用 Raspberry Pi/linux 进行操作。 这些行应该添加到 /home/pi/.config/lxsession/LXDE-pi/autostart
@chromium-browser --kiosk --incognito --user-data-dir=/home/pi/.config/chromium-display1 --window-position=0,0 https://bing.com
@chromium-browser --kiosk --incognito --user-data-dir=/home/pi/.config/chromium-display2 --window-position=1921,0 https://google.com
如果您需要找到您的屏幕分辨率,请转至首选项 > 屏幕配置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.