我们有一个带两个屏幕的信息亭,一个用于与用户互动,第二个用于一些促销内容。我需要确保Chrome在启动时始终在特定网页的第二个屏幕上打开。它在Windows机器上运行......
我一直在寻找首先使用任务计划程序打开Chrome的方法,而不是将窗口移动到第二个屏幕。但经过一些研究和测试后,我最终在" kiosk模式" (有用的东西btw)使用Powershell脚本提供的URL。值得庆幸的是,如果我在第二个屏幕上关闭Chrome窗口,它将记住位置,下次Chrome窗口打开时,它将被放置在"我离开它的位置"。但是,我想确保即使出现一些错误,Chrome"偏好"文件(在AppData文件夹中)将始终将位置设置为我的第二个屏幕。
我遇到了(Change Chrome Settings via Powershell),但我仍然无法在启动时(打开Chrome窗口之前)编写工作代码来修改此文件。
非常感谢任何帮助!
答案 0 :(得分:0)
我遇到了同样的问题,但是我的任务是让Chrome自动打开.ica文件。
我写了下面的脚本来做到这一点:
get-childitem -path "$env:systemdrive\Users" | foreach-object {
$path = "$env:systemdrive\Users\$_\appdata\local\google\chrome\user data\default\preferences"
if(test-path $path){
$prefs = get-content $path | convertfrom-json
if($prefs){
if(!($prefs.download.extensions_to_open)){
$prefs.download | add-member -name "extensions_to_open" -value "ica" -MemberType NoteProperty #-Force
} else {
if(!($prefs.download.extensions_to_open -match "ica")){
write-host "No ICA"
$prefs.download.extensions_to_open = $prefs.download.extensions_to_open + ":ica"
} else {
write-host "ICA file type will already auto-open, ignoring."
}
}
$prefs | convertto-json -depth 100 | out-file $path -encoding utf8
}
}
}
您应该能够重构它。它将所有内容写入机器上每个用户的首选项文件,并且运行良好。
为了节省您一些时间,我为您重构了脚本:
get-childitem -path "$env:systemdrive\Users" | foreach-object {
$path = "$env:systemdrive\Users\$_\appdata\local\google\chrome\user data\default\preferences"
if(test-path $path){
$prefs = get-content $path | convertfrom-json
if($prefs){
$prefs.browser.window_placement.left = 500 # pixel value
$prefs.browser.window_placement.top = 100 # pixel value
$prefs.browser.window_placement.bottom = 100 # pixel value
$prefs.browser.window_placement.right = 100 # pixel value
$prefs.browser.window_placement.maximized = $false # $true or $false
$prefs | convertto-json -depth 100 | out-file $path -encoding utf8
}
}
}
脚本编写愉快!
答案 1 :(得分:0)
Dan的回答对于写首选项文件确实很有帮助。我确实注意到,如果不从get-content指定编码,则每次运行它都会增加首选项文件的大小。更改以下行:
$prefs = get-content $path -encoding utf8| convertfrom-json