[英]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.