对于某些应用,例如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
(只是宽度,因为某些窗口似乎必须具有特定的宽高比,所以我认为将其设置为如果宽高比不正确,则特定的宽度和高度可能无效。
答案 0 :(得分:11)
如果应用程序不可编写脚本,您将无法从中获取此类信息。如果你有系统偏好设置>设置“启用辅助设备访问”的“辅助功能”首选项,您可以使用系统事件流程套件来获取/设置窗口大小,例如:
tell application "System Events" to tell application process "Angry Birds Space"
get size of window 1
end tell
注意:在macOS版本之间启用可访问性会有很大差异。 How to Enable Accessibility on Mac OS X 是一个很好的指南。从10.14开始,你必须去安全&amp;隐私&gt; <可访问性选项>隐私选项卡,并在“允许下面的应用程序控制您的计算机”中添加该应用程序。
答案 1 :(得分:4)
愤怒的小鸟太空可编写脚本吗?如果没有,告诉它做任何事都不应该奏效。类似的例子是:
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