簡體   English   中英

如何在不同的顯示器 (Windows) 中打開 Chrome 自助服務終端模式的兩個實例

[英]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 腳本以便於使用。

不久

腳本執行以下操作:

  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 

完成此操作的最簡單方法是使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM