好吧,SU,我有一个有趣的问题要解决。
我有 8 个屏幕排成一排,全部连接到一台运行 Snow Leopard 的强大 G5(是的,4 个显卡;宽度约为 15,000 像素!)。我正在设置一个演示,它使用 8 个全屏 Chrome 浏览器窗口,每个窗口指向不同的 URL。每次重新启动计算机时都要手动执行此操作,真是麻烦。
根据这个设置,我想编写一个脚本来自动执行以下任务:
- 打开 Chrome 窗口到特定屏幕
- 将该窗口指向特定的 URL
- 全屏显示该窗口(键盘快捷键为 command-F)
我没有使用过自动化程序,而且我对 shell 脚本也不是特别熟悉,但我想知道是否有人能给出一些有趣的建议。
更新:即使我需要使用 Automator 来实现高级功能,我最终还是希望能够从命令行/脚本触发脚本。如果需要,我希望能够从 shell 远程打开此演示。
答案1
我想到了!
Applescript 是一个很好的资源,并且 chrome 有一个字典(您可以在“Applescript 编辑器”中查看,然后选择“打开字典”并在列表中找到 Chrome)。
代码:
set screenCount to 8
set screenWidth to 1950
set baseURL to "http://localhost:8000"
tell application "Google Chrome"
activate
repeat while window 1 exists
close window 1
end repeat
repeat with x from 1 to screenCount
set w to make new window with properties {bounds:{screenWidth * (x - 1), 500, 500 + screenWidth * (x - 1), 1000}}
tell application "System Events" to keystroke "F" using {command down, shift down}
set URL of active tab of w to (baseURL & "/" & "#" & (x - 1))
end repeat
end tell
该脚本执行以下操作:
- 激活 Chrome(要么打开它,要么如果它已打开,则使其成为焦点)
- 关闭所有打开的浏览器窗口
- 创建 [screenCount] 个浏览器窗口,并在特定坐标处打开它们({bounds} 中的前两个项是左上角的 x,y。{bounds} 中的后两个项是右下角的 x,y)
- 每个浏览器窗口打开后,发送“全屏”命令(Command + Shift + F)
- 每个浏览器窗口全屏后,将 URL 设置为所需位置。
请记住,我的 URL 符合特定的公式(例如http://本地主机:8000/#0),因此很容易动态生成它们。对于任何有随机类似需求的人,您都可以将此作为起点。
最后,对于终端要求,您可以使用以下行在终端上运行 applescript:
osascript [脚本名称]