我正在使用rb-appscript。以下几行在Lion中运行良好,但似乎在Mountain Lion中不起作用:
desktop_bounds = Appscript.app.by_name("Finder").desktop.window.bounds.get
我有两个问题:
答案 0 :(得分:2)
我认为这与iTunes 10.6.3产生的问题相同:请参阅here进行iTunes讨论(以及有关{{3后帖子后期appcript未来的更全面辩论的链接)马特·纽堡(Matt Neuburg)解决了这个问题。
问题似乎是appscript无法再获取应用程序的字典(在本例中为Finder),因此对特定于应用程序的方法的任何调用都会中断。 Matt在Dr. Drang发布了一个脚本,提供了另一种获取字典的方法。您可以通过以下方式使用它来恢复功能:
require 'Appscript'
$RUBY_DIR = '/Users/ben/Documents/Code/rb-appscript'
def app_module( id )
require "#{$RUBY_DIR}/sdefToRBAppscriptModule.rb"
f = FindApp.by_id(id)
return SDEFParser.makeModule(f)
end
finder = Appscript.app("Finder", app_module('com.apple.finder'))
desktop_bounds = finder.desktop.window.bounds.get
p desktop_bounds
答案 1 :(得分:1)
仅仅是我的两分钱:作为替代品的MacRuby更多是Ruby,但确实比rb-appscript更少的Appscript。但它应该完成工作。