既然iTunes已经被音乐所取代,我该如何获得当前歌曲的信息(标题、艺术家、专辑、艺术品、长度、当前位置等)?ScriptingBridge似乎不适合Music.app。在应用程序中运行AppleScript只会引发一个错误:Not authorized to send Apple events to Music.
我正在尝试编写一个通过ScriptingBridge与iTunes交互的应用程序。到目前为止,我工作得很好,但这种方法的选择似乎非常有限。
我想用给定的名字播放歌曲,但看起来没有办法。我还没有在iTunes.h…中找到类似的东西
在AppleScript中,它只有三行代码:
tell application "iTunes"
play (some file track whose name is "Yesterday")
end tell
然后iTunes开始演奏甲壳虫乐队的经典歌曲。有没有什么是我可以用ScriptingBridge做的,或者我必须在我
我可以使用以下AppleScript打开终端选项卡:
tell application "Terminal"
set myTab to do script "exec sleep 1"
get myTab
end tell
这将返回一个字符串,如:tab 1 of window id 3263 of application "Terminal"。这很好,我可以看到窗口id 3263和标签号1(虽然我不知道如何查询myTab以获得这些值)。
在可可ScriptingBridge中,我可以这样做:
SBApplication *te
我正在使用脚本桥从我的Mac应用程序发送邮件。现在我需要沙箱的应用程序和发送邮件不再工作,而沙箱启用。
有谁知道怎么解决这个问题吗?
谢谢,安德烈亚斯
代码:`
/* create a Scripting Bridge object for talking to the Mail application */
MailApplication *mail = [SBApplication applicationWithBundleIdentifier:@"com.apple.Mail"];
/* create a new outgoing message object
下面的AppleScript代码运行良好:
tell application "Adium" to tell first account to make new chat with contacts {first contact} with new chat window
但是我如何使用Cocoa的ScriptingBridge做同样的事情呢?
我有一个使用ScriptingBridge控制Safari的Objective-C应用程序。它可以工作,但我在为一项新功能编写代码时遇到了麻烦--告诉Safari在新窗口中打开一个URL。下面是我想要的AppleScript:
tell application "Safari"
make new document at end of documents
set URL of document 1 to "http://www.apple.com/"
end tell
下面是我希望使用ScriptingBridge实现的等效代码:
NSString *appNam
在applescript中:
set allItems to every item whose name is "foo"
在rb-appscript中:
all_items = items[its.name.eq "Foo"]
有没有办法在MacRuby/ScriptingBridge中构造一个类似的搜索/谓词/你有什么?
从我所能找到的所有API文档中,似乎正确的做法是检查系统事件或可访问性API返回的“最前端”窗口,类似于这样(例如在Python中,但在ObjC、whatever或ruby之类的方面也是如此):
#!/usr/bin/env python
from ScriptingBridge import SBApplication
events = SBApplication.applicationWithBundleIdentifier_(
"com.apple.systemevents")
for proc in events.applicationProcesses():
当然,下面的示例并不是我的整个应用程序。我已经提供了抛出错误的部分:
#!/usr/local/bin/macruby
require 'open-uri'
framework 'ScriptingBridge'
system "mkdir -p ~/.myApp"
system "cp ~/Desktop/image.png ~/.myApp/image.png"
var = open('~/.myApp/image.png', 'w')
错误是:
open: No such file or
我正在使用Ruby通过Scripting Bridge检查我在Quicktime中播放的视频的位置。
目前我只是像这样每隔n秒检查一次位置:
require 'osx/cocoa'
include OSX
OSX.require_framework 'ScriptingBridge'
app = SBApplication.applicationWithBundleIdentifier_("com.apple.QuickTimePlayerX")
while true
app.documents.each do |doc|
p
我正在尝试通过ScriptingBridge获取最前面的、活动的Safari窗口(Safari5.2在山狮开发人员预览2中运行)的URL,但是无法找到任何属性来确定窗口是否是前面的窗口。
SafariApplication *safari = [SBApplication applicationWithBundleIdentifier:@"com.apple.Safari"];
for (SafariWindow *window in safari.windows) {
if ([window visible]) {
// Top most, activ