私はrb-appscriptを使用しています。次の行は Lion では正常に機能しましたが、Mountain Lion では機能しないようです。
desktop_bounds = Appscript.app.by_name("Finder").desktop.window.bounds.get
2 つの質問があります。
- Mountain Lion でこれを修正する方法はありますか。
- rb-appscript プロジェクトはメンテナンスされていないようです。より良い代替手段はありますか?
私はrb-appscriptを使用しています。次の行は Lion では正常に機能しましたが、Mountain Lion では機能しないようです。
desktop_bounds = Appscript.app.by_name("Finder").desktop.window.bounds.get
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
私の 2 セント: 代替としての MacRuby はより Ruby ですが、決定的に rb-appscript よりも Appscript は少なくなります。しかし、それは仕事を成し遂げるはずです。