Macos 使用Applescript调整大小时对窗口高度的限制

Macos 使用Applescript调整大小时对窗口高度的限制,macos,applescript,osx-mavericks,multiple-monitors,Macos,Applescript,Osx Mavericks,Multiple Monitors,我有一个多显示器Mac desktop 4,每个1920x1080显示器排列成4x4矩形,可以用鼠标打开所有显示器的窗口,填满整个四屏桌面。 我正在运行Mavericks并已禁用“显示有单独空格”复选框 我希望能够这样自动,所以使用AppleScript。然而,即使显示器以4x4矩阵排列,使得桌面的总高度报告为2160像素,窗口的打开高度也不会超过其中一个显示器1080像素。窗口宽度没有问题,脚本在水平显示时可以很好地打开 以下是AppleScript的关键部分: tell applicatio

我有一个多显示器Mac desktop 4,每个1920x1080显示器排列成4x4矩形,可以用鼠标打开所有显示器的窗口,填满整个四屏桌面。 我正在运行Mavericks并已禁用“显示有单独空格”复选框

我希望能够这样自动,所以使用AppleScript。然而,即使显示器以4x4矩阵排列,使得桌面的总高度报告为2160像素,窗口的打开高度也不会超过其中一个显示器1080像素。窗口宽度没有问题,脚本在水平显示时可以很好地打开

以下是AppleScript的关键部分:

tell application "Finder"
    set bounds of first window to {0, 0, 3840, 1800}
end tell
窗户的垂直尺寸似乎有某种限制。有没有办法实现自动化

谷歌对Mavericks的多显示器支持一直抱怨不休,但我找不到任何与这个问题相关的东西

提前谢谢

背景

我已经在两种多显示器显示器配置上尝试过:

2014年初Mac Pro。 四个1920x1080外部监视器以2x2矩形横向排列。 报告的桌面大小为{0,038402160}

MacBook Pro视网膜2013年末: 两个1920x1200外部监视器,一个置于另一个之上 当然还有笔记本电脑自己的2880x1800内部显示器 报告的桌面大小为{0,033602400}


我没有多个监视器来测试这个,但是在我的一个监视器上,0,0点是我屏幕的左上角。也许你需要调整你的第二个界限。我的建议是手动打开窗户。然后运行此代码以获取边界。然后尝试用返回的值设置边界。当然,我仍然不知道这是否有效,但至少你会知道你的工作范围是正确的。祝你好运

tell application "Finder"
    return bounds of window 1
end tell
编辑:一旦知道正确的边界,您可以尝试使用系统事件来调整窗口大小。系统事件不知道边界,但它知道边界中前两个数字的位置,并确定边界中后两个数字的大小。用你的号码试试这个

tell application "System Events"
    tell process "Finder"
        set position of window 1 to {0, 400}
        set size of window 1 to {800, 500}
    end tell
end tell

不恢复死掉的主体,但由于某些外部依赖,可以调整比监视器分辨率更大的大小。你需要一个名为MegaZoomer[…的程序,你需要EasySIMBL[


首先安装EasySIMBL,可以从下载。然后从中下拉MegaZoomer…将MegaZoomer软件包复制到EasySIMBL软件包目录中。您需要在SIMBL中启用该软件包。您可能需要重新启动。然后运行applescript,它应该可以工作。

问题是您的显示器太多:D-实际上我有一点不同作为调整窗口大小的一种方式,如果你认为有帮助的话,我可以发布我的代码。如果有任何新的建议,我将非常感谢,谢谢我。正如你从我刚刚发布给regulus的评论中所看到的,我在这里已经没有什么想法了……谢谢regulus的提示。我已经玩过边界,我认为我们在那里还可以。似乎是起源0,0是从显示菜单的监视器的上角定义的。因此,如果菜单位于4x4矩阵的右上角监视器上,则有必要使用-1920的“左”值来强制窗口位于整个4x4桌面的左上角。如果这有意义的话——在回读时,听起来有点复杂!好的。至少现在是这样我相信你知道正确的界限。我有一个想法。系统事件也可以调整窗口大小。有关新代码,请参阅我文章的编辑部分。感谢更新regulus。我尝试了新的“系统事件”技术,但结果完全相同。有趣的是,我收到一个弹出窗口,请求我向Finder授予访问权限。我做到了,但没有成功没有什么不同。因为我可以使用鼠标手动调整所有显示窗口的大小,所以我决定回到基础,使用Applescript录制功能录制鼠标移动并播放该脚本。这导致了同样的错误行为。我不愿意承认,但这看起来真的像一个Mavericks错误。我将重复请将其转发给苹果。很抱歉,我们找不到答案。如果Finder和系统事件无法正确调整窗口大小,我想不出任何其他编程方式来完成此操作。如果您确定这可以在旧版本的MacOS中完成,那么它将在10.9中被视为一个bug。我不确定这可以在旧版本的MacOS上完成,我不知道有一个旧的系统很容易尝试。感谢您的帮助和支持!