如何编写 Applescript 以在外部显示器上调整应用程序窗口的大小

问题描述

我想编写一个 Applescript 来调整外部屏幕上 Safari 窗口的大小。 我有一个 1440x900 的 Macbook Air Screen 和一个 2560x1440 的华硕外接显示器。 我想将 Safari 保留在我的外接显示器上,左侧有 170 像素的间隙。 我编写了以下基本脚本:

tell application "System Events"
    tell application "Safari"
        activate
        set bounds of window 1 to {170,2560,1440}
    end tell
end tell

结果是唯一打开的 Safari 窗口从我的外接显示器移动到我的 Macbook Air (Mojave) 屏幕,其宽度正确 (2560-170 = 2390) 和不正确的高度(900 而不是指定的 1440)。

我如何确保正确的宽度和高度并将窗口保持在我的外部显示器上。 非常感谢。

解决方法

在这种情况下,您不需要使用系统事件; Safari 知道如何调整自己的窗口大小。您需要做的就是获取窗口的边界,更改返回列表的最后两项,然后将边界设置为修改后的数组。这将改变大小而不移动窗口的位置。

tell application "Safari"
    activate
    set old_bounds to bounds of window 1
    set item 3 of old_bounds to 2560
    set item 4 of old_bounds to 1440
    set bounds of window 1 to old_bounds
end tell

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...