我正在处理一个应用程序,用于在OSX上移动和调整其他应用程序的窗口大小。 主要应用程序是用Cocoa编写的,但调整大小的部分是在AppleScript中完成的,因为Cocoa似乎没有这种功能。在AppleScript中调整Windows中Unscriptable应用程序的大小
下面是ActionScript中的常规呼叫(作为字符串NSAppleScript传递)的结果:
tell application "TextEdit"
set currentWindow to the window id 5184
set bounds of the currentWindow to {2855, 218, 3790, 578}
end tell
使用在OSX 10.6引入的CGWindowListCopyWindowInfo API获得的窗口ID。
此方法适用于大多数窗口,但不适用于无法编写脚本的应用程序。 最显着的例子是OSX自己的预览。
我试图“告诉”系统事件,而不是这个代码
tell application "System Events"
set bounds of window 5184 to {1920, -502, 2855, 578}
end tell
但预览使用的变化,OSX给我一个错误信息:当只是想
"System Events got an error: Can’t set bounds of window 5184 to {1920, -502, 2855, 578}."
同样的情况,得到一个参考窗口:
tell application "System Events"
get window 5184
end tell
我已经doublechecked,windo存在w并且窗口ID是正确的。
在OSX上以编程方式调整不可编程窗口的正确方式是什么? 我可以看到它可以从应用程序,如moom。
任何建议 - 不管是基于Cocoa还是基于AppleScript的或其他的东西 - 都是值得欢迎的。
拼写错误'fortunately' – hooleyhoop 2011-05-29 22:54:33
感谢您使用AppleScript完成此任务的复杂脚本和见解。我决定改用Accessibility API。虽然它具有较大的开销,但它可用于跨应用程序以调整大小。 – 0x90 2011-05-30 16:26:16