rb-appscript无法在Mountain Lion中工作

时间:2012-09-17 05:10:36

标签: ruby macos applescript osx-mountain-lion rb-appscript

我正在使用rb-appscript。以下几行在Lion中运行良好,但似乎在Mountain Lion中不起作用:

desktop_bounds = Appscript.app.by_name("Finder").desktop.window.bounds.get

我有两个问题:

  1. 有没有办法在Mountain Lion中解决这个问题。
  2. 我看到rb-appscript项目不再被维护。还有更好的选择吗?

2 个答案:

答案 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。但它应该完成工作。