1

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

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

我有两个问题:

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

2 回答 2

2

我认为这与 iTunes 10.6.3 出现的问题相同:请参阅此处了解 iTunes 讨论(以及Drang 博士发表的关于 appscript 未来的更全面辩论的链接)和 Matt Neuburg 的修复.

问题似乎是 appscript 无法再获取应用程序的字典(在本例中为 Finder),因此对特定于应用程序的方法的任何调用都会中断。Matt 在https://github.com/mattneub/appscript/tree/master/rb-appscript发布了一个脚本,该脚本提供了另一种获取字典的方法。您可以通过以下方式使用它来恢复功能:

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
于 2012-10-08T16:44:00.477 回答
1

只是我的两分钱:MacRuby 作为替代品更像是 Ruby,但绝对比 rb-appscript 少 Appscript。但它应该完成工作。

于 2012-09-17T07:04:26.303 回答