我想从Ruby中访问几个不同的Mac OS X应用程序,但是我会选择PHP。 这些应用程序是Elgato的turbo.264和Apple的iTunes。 两个都定义了Applescript Libraries,它可以让我做我想从Applescript做的事情,但我不想在Applescript中做到这一点。 如果我不能在Ruby或PHP中做到这一点,也许我可以在目标C / Cocoa中做到这一点,并创建一些我可以从Ruby调用的包装器。
这甚至有可能吗? 似乎如果这些方法在Applescript中可用,它们应该以其他语言提供,我只是无法找到任何东西。
I would like to access a couple of different Mac OS X applications from preferably Ruby, but I would settle for PHP. The applications are Elgato's turbo.264 and Apple's iTunes. Both have Applescript Libraries defined that would allow me to do what I want to do from Applescript, but I don't want to do this in Applescript. If I can't do this in Ruby or PHP, perhaps I can do it in objective C / Cocoa and create some kind of wrapper that I could call from Ruby.
Is this even possible? It seems like if the methods are available in Applescript they should be available in other languages, I have just not been able to find anything.
最满意答案
尝试RubyOSA( http://rubyosa.rubyforge.org ),然后你可以这样做:
require 'rbosa' itunes = OSA.app('iTunes') track = itunes.current_track p track # <OSA::Itunes::FileTrack:0x1495e20> p track.name # "Over The Rainbow" p track.artist # "Keith Jarrett" p track.duration # 362.368988037109 p track.date_added.to_s # "2006-06-30" p track.enabled? # true # Play the selected track. itunes.play # Fade the volume. 100.times { |i| itunes.sound_volume = i; sleep 0.1 } # Set iChat's status message to the current track. OSA.app('iChat').status_message = "Playing: #{track.name}"您可以与任何支持AppleScript的Mac OS X应用程序交谈
Try RubyOSA (http://rubyosa.rubyforge.org) and then you can do this:
require 'rbosa' itunes = OSA.app('iTunes') track = itunes.current_track p track # <OSA::Itunes::FileTrack:0x1495e20> p track.name # "Over The Rainbow" p track.artist # "Keith Jarrett" p track.duration # 362.368988037109 p track.date_added.to_s # "2006-06-30" p track.enabled? # true # Play the selected track. itunes.play # Fade the volume. 100.times { |i| itunes.sound_volume = i; sleep 0.1 } # Set iChat's status message to the current track. OSA.app('iChat').status_message = "Playing: #{track.name}"You can talk to any Mac OS X app that supports AppleScript
更多推荐
发布评论