12

对于某些应用程序,例如 Notes 或 VLC,可以使用以下内容:

tell application "Notes" to get the bounds of the window 1

如果我将上面的行放入一个文件并sudo osascript thatfilename用来调用它,它就可以工作。

但是对于一些应用,比如愤怒的小鸟空间,下面的就不行了?

tell application "Angry Birds Space" to get the bounds of the window 1

给出错误:

execution error: Angry Birds Space got an error: Can’t get bounds of 
  window 1. (-1728)

该应用程序有什么特别的东西可以阻止它吗?(因为它是游戏还是没有窗口 1?)

我正在研究获取和设置某些窗口的bounds或只是width某些窗口的宽度(只是宽度,因为某些窗口似乎必须具有特定的纵横比,所以我认为如果纵横比不是,将其设置为特定的宽度和高度可能不起作用不正确)。

4

2 回答 2

17

如果应用程序不可编写脚本,您将无法从中获取此类信息。如果您设置了“启用辅助设备访问”的系统偏好设置 > 辅助功能偏好设置,则您可以使用系统事件进程套件来获取/设置窗口大小,例如:

tell application "System Events" to tell application process "Angry Birds Space"
    get size of window 1
end tell

注意:启用可访问性在 macOS 版本之间有很大差异。如何在 Mac OS X 上启用辅助功能 是一个很好的指南。从 10.14 开始,您必须转到安全和隐私 > 辅助功能选项 > 隐私选项卡,然后在“允许以下应用程序控制您的计算机”中添加应用程序。

于 2012-08-18T19:16:23.140 回答
11

愤怒的小鸟空间可以编写脚本吗?如果没有,告诉它做任何事情都不应该起作用。一个类似的例子是:

tell application "Preview" to get the bounds of the window 1

正如 Red Menace 指出的那样,您可以像这样使用申请流程:

tell application "System Events" to tell application process "Preview"
    tell window 1
        set {size, position} to {{1280, 800}, {50, 50}}
    end tell
end tell
于 2012-08-18T19:09:51.323 回答