1

私はrb-appscriptを使用しています。次の行は Lion では正常に機能しましたが、Mountain Lion では機能しないようです。

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

2 つの質問があります。

  1. Mountain Lion でこれを修正する方法はありますか。
  2. rb-appscript プロジェクトはメンテナンスされていないようです。より良い代替手段はありますか?
4

2 に答える 2

2

これは、iTunes 10.6.3 で発生したのと同じ問題だと思います: iTunes のディスカッション ( Dr. 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

私の 2 セント: 代替としての MacRuby はより Ruby ですが、決定的に rb-appscript よりも Appscript は少なくなります。しかし、それは仕事を成し遂げるはずです。

于 2012-09-17T07:04:26.303 に答える